当前位置: 代码迷 >> 综合 >> 洛谷-P1219 [USACO1.5]八皇后 Checker Challenge
  详细解决方案

洛谷-P1219 [USACO1.5]八皇后 Checker Challenge

热度:17   发布时间:2023-11-22 01:42:52.0

题目链接

#include<bits/stdc++.h>using namespace std;const int N = 40;
int a[N],b[N],c[N],d[N];
int n,flag;void dfs(int i)
{
    if(i>n){
    if(flag<=2){
    for(int i=1;i<=n;i++)cout<<a[i]<<" ";cout<<endl;}flag++;return ;}else{
    for(int j=1;j<=n;j++){
    if(!b[j]&&!c[i+j]&&!d[i-j+n]){
    a[i] = j;b[j] = 1;c[i+j] = 1;d[i-j+n] = 1;dfs(i+1);b[j] = 0;c[i+j] = 0;d[i-j+n] = 0;}}}
}int main()
{
    cin>>n;dfs(1);cout<<flag<<endl;return 0;
}
  相关解决方案