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 求差集那个函数有问题,有无佬可以解决
  • ¥15 MATLAB动图问题
  • ¥15 【提问】基于Invest的水源涵养
  • ¥20 微信网友居然可以通过vx号找到我绑的手机号
  • ¥15 寻一个支付宝扫码远程授权登录的软件助手app
  • ¥15 解riccati方程组
  • ¥15 display:none;样式在嵌套结构中的已设置了display样式的元素上不起作用?
  • ¥15 使用rabbitMQ 消息队列作为url源进行多线程爬取时,总有几个url没有处理的问题。
  • ¥15 Ubuntu在安装序列比对软件STAR时出现报错如何解决
  • ¥50 树莓派安卓APK系统签名