lpq29743 2017-07-10 13:49 采纳率: 0%
浏览 589

HDOJ 1016一直WA,格式和思路我都觉得没问题啊

做HDOJ 1016让我有点吐血,我的思路也是DFS,只不过实现方法略有差别,所以也很难找到对比的答案,但是跟别人的测试数据对比也无误啊!
以下是我的代码:

#include<stdio.h>
#include<stdlib.h>

int n;
int *s;

int isPrime(int num) {
    int result = 1;
    for(int i = 2; i < num; i++) {
        if(num % i == 0) {
            result = 0;
            break;
        }
    }
    return result;
}

void dfs(int step) {
    if(step == n) {
        if(isPrime(s[n - 1] + s[0])) {
            for(int i = 0; i < n; i++) {
                if(i != 0) {
                    printf(" ");
                }
                printf("%d", s[i]);
            }
            printf("\n");
        }
    }
    int tmp;
    for(int i = step; i < n; i++) {
        if(isPrime(s[step - 1] + s[i])) {
            tmp = s[step];
            s[step] = s[i];
            s[i] = tmp;
            dfs(step + 1);
            tmp = s[step];
            s[step] = s[i];
            s[i] = tmp;
        }
    }
}

int main() {
    int count = 0;
    while(scanf("%d", &n) == 1) {
        s = (int *)malloc(sizeof(int) * n);
        for(int i = 0; i < n; i++) {
            s[i] = i + 1;
        }
        printf("Case %d:\n", ++count);
        if(n >= 1) {
            dfs(1);
        }
        printf("\n");
    }
    return 0;
}

我觉得格式和输出都没问题啊,搞不懂哪里导致WA了!
另外,HDOJ也不能看数据,不知各位大神有什么好的讨论网址或者其他OJ介绍
不然做完题之后排错很辛苦啊!

  • 写回答

1条回答

  • zqbnqsdsmd 2018-08-06 14:49
    关注
    评论

报告相同问题?

悬赏问题

  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 HLs设计手写数字识别程序编译通不过
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 TYPCE母转母,插入认方向
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?
  • ¥15 matlab(相关搜索:紧聚焦)
  • ¥15 基于51单片机的厨房煤气泄露检测报警系统设计
  • ¥15 Arduino无法同时连接多个hx711模块,如何解决?