专栏文章

P1219题解

P1219题解参与者 1已保存评论 0

文章操作

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

当前评论
0 条
当前快照
1 份
快照标识符
@mioviukn
此快照首次捕获于
2025/12/03 01:50
3 个月前
此快照最后确认于
2025/12/03 01:50
3 个月前
查看原文

纯靠深搜

代码如下
CPP
#include<bits/stdc++.h>//上头文件
using namespace std;
int n,cnt,hang[15];//
bool xie[26],lie[15],xie2[45];
void dfs(int u){
	if(u==n+1){
		cnt++;
		if(cnt<=3){//输出
			for(int i=1;i<=n;i++){
				cout<<hang[i]<<" ";
			}
			cout<<"\n";
		}
	}
	else{
		for(int i=1;i<=n;i++){
			if(xie[u+i]==0&&lie[i]==0&&xie2[u-i+n]==0){
				hang[u]=i;
				xie[u+i]=1;
				xie2[u-i+n]=1;
				lie[i]=1;
				dfs(u+1);
				xie[u+i]=0;
				xie2[u-i+n]=0;
				lie[i]=0;
			}
		}
	}

}
int main(){
	cin>>n;
	dfs(1);
	cout<<cnt;
	return 0;
}
自己看吧

评论

0 条评论,欢迎与作者交流。

正在加载评论...