社区讨论

61分求条【玄关】

P1219[USACO1.5] 八皇后 Checker Challenge参与者 2已保存回复 3

讨论操作

快速查看讨论及其快照的属性,并进行相关操作。

当前回复
3 条
当前快照
1 份
快照标识符
@mil1awyn
此快照首次捕获于
2025/11/30 09:21
3 个月前
此快照最后确认于
2025/12/01 23:30
3 个月前
查看原帖
CPP
#include<bits/stdc++.h>
using namespace std;
const int N=30;
int n;
int cnt=0;
int k=0;
int sum=0;
bool c[N],d[N],f[N];
int ans[N];
void dfs(int x){
	if(x>n){
        if(cnt==n){
            sum++;
    		if(k<3){
                k++;
    			for(int i=1;i<=n;i++)
    				cout<<ans[i]<<' ';
    			cout<<endl;
    		}            
        }
        return;
	}
    for(int y=1;y<=n;y++){
    	if(!c[y] && !d[x+y] && !f[x-y+n]){
    		cnt++; 
    		c[y]=d[x+y]=f[x-y+n]=true;
    		ans[x]=y;
    		dfs(x+1);
    		c[y]=d[x+y]=f[x-y+n]=false;
    		cnt--; 
    	}
    }
	dfs(x+1);
}
int main(){
	cin>>n;
	dfs(1);
    cout<<sum<<endl;
	return 0;
}
为什么TLE啊啊啊啊

回复

3 条回复,欢迎继续交流。

正在加载回复...