蒟蒻求助大佬,感觉没问题,但是只有48分
查看原帖
蒟蒻求助大佬,感觉没问题,但是只有48分
690827
Noname_min楼主2022/7/20 16:24
#include<bits/stdc++.h>
using namespace std;
const int N=15;
int a[N],n,b[N],c[N],d[N],f[N][N],flag,ans,m=1,k;
string s[N];
void print()
{
	if(flag<=2)
	for(int i=1;i<=n;i++)
	 cout<<a[i]<<" ";
	 if(flag<=2)cout<<endl;
	flag++;
	
}
void dfs(int i)
{
	if(i==n+1) {
		print();
		return;
	}
	for(int j=1;j<=n;j++)
	{
		if(b[j]||c[i+j]||d[i-j+n])
		continue;
		a[i]=j;
		b[j]=c[i+j]=d[i-j+n]=1;
		dfs(i+1);
		b[j]=c[i+j]=d[i-j+n]=0;
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<flag;
	return 0;
}

求大佬指出问题所在

2022/7/20 16:24
加载中...