87分#8TLE求助!~
查看原帖
87分#8TLE求助!~
681558
Weizhuo_Zhao楼主2023/7/28 14:36
#include<iostream>
using namespace std;
int a[15],k,c=0;
long long ans;
bool q(int n){
    for(int i=1;i<n;i++)
        if(a[i]==a[n]||i-a[i]==n-a[n]||i+a[i]==n+a[n])
            return 0;
    return 1;
}
void dfs(int n){
    if(n==k+1){
        ans++;
        for(int i=1;i<=k;i++){
            if(c>=3){
                return;
            }
            printf("%d ",a[i]);
        }
        c++;
        printf("\n");
    }
    else{
        for(int i=1;i<=k;i++){
            a[n]=i;
            if(q(n)){
                dfs(n+1);
            }
        }
    }
}
int main(){
    cin>>k;
    dfs(1);
    cout<<ans;
    return 0;
}
2023/7/28 14:36
加载中...