WWF_666 2021-08-05 17:01 采纳率: 33.3%
浏览 24
已结题

八皇后为什么斜线对角线有一条要用x-y+n-1

img


#include<bits/stdc++.h>
using namespace std;
int n,ans=0,a[23];
int b1[23],b2[23],b3[23];//记录同一列、对角线是否被占用 
void dfs(int x){//第x行的皇后放哪里 
    if(x>n){//所有皇后放置完毕 
        ans++;
        if(ans<=3){//输出前三种答案 
            for(int i=1;i<=n;i++){
                cout<<a[i]<<" ";
            }
            cout<<endl;
        }
        return;
    }
    for(int i=1;i<=n;i++){
        if(b1[i]==0&&b2[x+i]==0&&b3[**x-i+n+1**]==0){
            a[x]=i;
            b1[i]=1,b2[x+i]=1,b3[x-i+n+1]=1;
            dfs(x+1);
            b1[i]=0,b2[x+i]=0,b3[x-i+n+1]=0;
        }
    } 
}
int main(){
    cin>>n;
    dfs(1);
    cout<<ans;
    return 0;
}****

为什么斜线对角线有一条要用x-y+n-1,为什么不是x-y+n,而且为什么数组下标会出现负

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 8月13日
    • 创建了问题 8月5日

    悬赏问题

    • ¥30 模拟电路 logisim
    • ¥15 PVE8.2.7无法成功使用a5000的vGPU,什么原因
    • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
    • ¥15 安装quartus II18.1时弹出此error,怎么解决?
    • ¥15 keil官网下载psn序列号在哪
    • ¥15 想用adb命令做一个通话软件,播放录音
    • ¥30 Pytorch深度学习服务器跑不通问题解决?
    • ¥15 部分客户订单定位有误的问题
    • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
    • ¥15 Bug traq 数据包 大概什么价