我想问问哪儿错了啊啊啊啊啊啊啊啊啊啊啊?
2025-07-10 10:04:30
发布于:广东
46阅读
0回复
0点赞
这道题是人机题吧!
36分代码:
Code:
[USACO1.5] 八皇后 Checker Challenge
#include <bits/stdc++.h>
using namespace std;
const int N = 14;
int n, a[N];
bool col[N], dg[N], udg[N];
int cnt = 0;
void dfs(int u) {
if (u > n) {
cnt ++;
if (cnt <= 3) {
for (int i = 1; i <= n; i++) cout << a[i] << ' ';
cout << endl;
}
return;
}
for (int i = 1; i <= n; i++) {
if (!col[i] && !dg[u + i] && !udg[u - i + n]) {
a[u] = i;
col[i] = 1; dg[u + i] = 1; udg[u - i + n] = 1;
dfs(u + 1);
col[i] = 0; dg[u + i] = 0; udg[u - i + n] = 0;
}
}
}
int main () {
cin >> n;
dfs(1);
cout << cnt << endl;
return 0;
}
大神的代码请放这儿:[:色眯眯][:ACGO_肝不动了][:ACGO_顶呱呱]
Code:
或者加我好友,私信我
名字:Xiaomi CEO 雷军
全部评论 1
#include<bits/stdc++.h>
using namespace std;
int n;
int ans[14],te[3][100]={0},da=0;
void bfs(int line)
{
if(line>n)
{
da++;
if(da<=3)
{
for(int i=1;i<=n;i++)
cout<<ans[i]<<" ";
cout<<endl;
}
return;
}
for(int i=1;i<=n;i++)
{
if((!(te[0][i]))&&(!(te[1][i+line]))&&(!(te[2][i-line+n])))
{
ans[line]=i;
te[0][i]=1,te[1][i+line]=1,te[2][i-line+n]=1;
bfs(line+1);
te[0][i]=0,te[1][i+line]=0,te[2][i-line+n]=0;
}
}
}
int main()
{
cin>>n;
bfs(1);
cout<<da;
return 0;
}2026-07-19 来自 广东
0










有帮助,赞一个