6666666666666666666666、
  • 板块灌水区
  • 楼主yichengran
  • 当前回复2
  • 已保存回复2
  • 发布时间2021/11/20 10:21
  • 上次更新2023/11/4 00:03:26
查看原帖
6666666666666666666666、
360557
yichengran楼主2021/11/20 10:21
#include <bits/stdc++.h>
using namespace std;
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int n;
int l[100],r[100],lie[100];
int ans[100];
int sum=0;
void dfs(int x){
	if(x==n+1){
		sum++;
		if(sum>=4){
			return;
		}
		for(int i=1;i<=n;i++){
			cout<<ans[i]<<" "; 
		}
		cout<<endl;
		return;
	}
	for(int i=1;i<=n;i++){
		if(lie[i]==0&&l[x+i]==0&&r[x-i+20]==0){
			ans[x]=i;
			lie[i]=1;
			l[x+i]=1;
			r[x-i+20]=1;
			dfs(x+1);
			lie[i]=0;
			l[x+i]=0;
			r[x-i+20]=0;
		}
	}
}
int main(int argc, char** argv) {
	cin>>n;
	dfs(1);
	cout<<sum;
	return 0;
}
2021/11/20 10:21
加载中...