搜索
热搜: NOIP OIer 神牛
查看: 364|回复: 1

救我!!!1243!!!N皇后问题!!!

[复制链接]

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2023-11-23 21:20:01 | 显示全部楼层 |阅读模式
救我!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
回复

使用道具 举报

主题

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 昨天 11:02 | 显示全部楼层
#include<bits/stdc++.h>
using namespace std;
int n;
bool c[15];
bool e[25];
bool d[25];
int q[15];
int total=0;
void dfs(int x){
    if(x==n+1){
        total++;
        cout<<"No. "<<total<<'\n';
        for(int i=1;i<=n;i++){
            for(int j=1;j<=n;j++){
                if(q[i]==j) cout<<1;
                else cout<<0;
            }
            cout<<'\n';
        }
        return;
    }
    for(int i=1;i<=n;i++){
        if(c[i] || e[x+i] || d[n+x-i]) continue;
        q[x]=i;
        c[i]=e[x+i]=d[n+x-i]=true;
        dfs(x+1);
        c[i]=e[x+i]=d[n+x-i]=false;
    }
}

int main(){
    cin>>n;
    dfs(1);
    return 0;
}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

津ICP备19006949号-1 | 津公网安备12010102000465号

快速回复 返回顶部 返回列表