洛谷P1219八皇后-dfs

题目传送:洛谷P1219八皇后

dfs

#include<iostream>
using namespace std;
int n,ans=0;
int vis[3][50];
int col[50];
void dfs(int row){
    if(row==n){
       ans++;
       if(ans<=3){
           for(int i=0;i<n-1;i++)
               cout<<col[i]+1<<' ';
           cout<<col[n-1]+1<<endl;
       }
    }
    for(int i=0;i<n;i++){
        if(!vis[0][i]&&!vis[1][row-i+n]&&!vis[2][row+i]){
            col[row]=i;
            vis[0][i]=vis[1][row-i+n]=vis[2][row+i]=1;
            dfs(row+1);
            vis[0][i]=vis[1][row-i+n]=vis[2][row+i]=0;
        }
    }
}
int main(){
    cin>>n;
    dfs(0);
    cout<<ans<<endl;
    return 0;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。