社区讨论

我觉得我有毛病

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

讨论操作

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

当前回复
4 条
当前快照
1 份
快照标识符
@mjrrh5pd
此快照首次捕获于
2025/12/30 07:00
2 个月前
此快照最后确认于
2025/12/30 08:09
2 个月前
查看原帖
第一次代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int ans[7891];
bool a[7891],b[7891],c[7891];
int cnt,n;
void dfs(int pos)
{
	if(pos>n)
	{
		cnt++;
		if(cnt<=3)
		{
			for(int i=1;i<=n;i++)
			{
				cout<<ans[i]<<" ";
			}
			cout<<"\n";
			
		}
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(!a[i]&&!b[pos+i]&&!c[pos-i+n]);
		{
			ans[pos]=i;
			a[i]=1;
			b[pos+i]=1;
			c[pos-i+n]=1;
			dfs(pos+1);
			a[i]=0;
			b[pos+i]=0;
			c[pos-i+n]=0;
		}
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<cnt;
	return 0;
}
第二次代码:
CPP
#include<bits/stdc++.h>
using namespace std;
int ans[7891];
bool a[7891],b[7891],c[7891];
int cnt,n;
void dfs(int pos)
{
	if(pos>n)
	{
		cnt++;
		if(cnt<=3)
		{
			for(int i=1;i<=n;i++)
			{
				cout<<ans[i]<<" ";
			}
			cout<<"\n";
			
		}
		return;
	}
	for(int i=1;i<=n;i++)
	{
		if(!a[i]&&!b[pos+i]&&!c[pos-i+n])
		{
			ans[pos]=i;
			a[i]=1;
			b[pos+i]=1;
			c[pos-i+n]=1;
			dfs(pos+1);
			a[i]=0;
			b[pos+i]=0;
			c[pos-i+n]=0;
		}
	}
}
int main()
{
	cin>>n;
	dfs(1);
	cout<<cnt;
	return 0;
}
我dfs的时候,if后面打了个分号!!!!!!!!!

回复

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

正在加载回复...