萌新第一次写搜索(漏洞百出
查看原帖
萌新第一次写搜索(漏洞百出
1284815
canwen楼主2024/4/13 11:23
#include<iostream>
#include<cstring>
using namespace std;
int n,ans2;
int ansj[15];
bool h[15],l[15],duijiao[15];
void print(){
    if(ans2<=3){
    	for(int i=1;i<=n;i++){
    		cout<<ansj[i]<<" ";
		}
		cout<<endl;
	}
}
void dfs(int dep){
	//dep代表搜索到第几行
	if(dep==7){
		ans2++;
		print();
	}
	for(int j=1;j<=n;j++){
		int mid=(2*n-1)/2+1;int dj=0;
		if(dep>j){
			dj=mid-(dep-j);
		}else{
			if(j>dep) 
			dj=mid+(j-dep);
		}
		if(!l[j]&&!duijiao[dj]&&!h[dep]){
			l[j]=1;duijiao[dj]=1;h[dep]=1;
			ansj[dep]=j;
			dfs(dep+1);
			l[j]=0;duijiao[dj]=0;h[dep]=0;
			ansj[dep]=0;
		}
	}
}
int main(){
	cin>>n;
	dfs(n);
	cout<<ans2;
	
	
	return 0;
}

有救吗。

2024/4/13 11:23
加载中...