为什么不开o2会超时 87分 开了ac
查看原帖
为什么不开o2会超时 87分 开了ac
1021623
AVLw楼主2023/10/11 19:21

是哪里太慢了吗 感觉和正解也都差不多啊

#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstdio>


using namespace std;
const int N = 200;
int path[N]; int n, ans;

bool check(int i, int j) {
    for (int k = 0; k < i; k++) {
        if (j == path[k] || abs(i - k) == abs(j - path[k])) {
            return false;
        }
    }
    return true;
}

void dfs(int i) {
    if (i == n) {
        ans++;
        if (ans <= 3) {
            for (int i = 0; i < n; i++)
                printf("%d ", path[i]+1);
            printf("\n");
        }
        return;
    }
    for (int j = 0; j < n; j++) {
        if (check(i, j)) {
            path[i] = j;
            dfs(i + 1);
        }
    }

}



int main(){

     scanf("%d", &n);
     dfs(0);
     printf("%d\n", ans);
    



    return 0;
}

2023/10/11 19:21
加载中...