冢不错 2022-12-20 18:47 采纳率: 50%
浏览 35

回溯算法n皇后问题 求解

题目如图

img

这t组样例到底是什么意思啊

img

img

img

到底是哪里的问题 求解

#include<iostream>
#include<cstdio>
using namespace std;
const int N = 15;
int n, a[N], tot = 0,k,t[N];   //a-皇后的列标,tot-解的数量
bool col[N],vis[N * 2], vis2[N * 2];    //列,斜线,反斜线
//从第s行开始放皇后
void dfs(int s);
int main()
{     
    cin >> k;
    for(int i=0;i<k;i++){
    cin >> n;
    dfs(1);
    if(tot==0){
        cout << "no solute!" << endl;
        return 0;
    }
       t[i]=tot;
    tot=0;
    }
    for(int h=0;h<k;h++)
     cout << t[h] << endl;
   
    return 0;
}
//从第s行开始放皇后
void dfs(int s)
{   if(s==n+1){
        tot++;
        return;   
}
    //s-行,i-列
    for (int i = 1; i <= n;i++){
        if(!col[i]&&!vis[s+i]&&!vis2[n+s-i]){
            a[s] = i;   //第i个皇后放在第s行i列
            col[i] = true;
                vis[s + i] = true;
                vis2[n + s - i] = true;
                dfs(s + 1);      //继续放第s+1行
                //回溯算法
                col[i] = false;
                vis[s + i] = false;    
                vis2[n + s - i] = false;
        }
    }
}

  • 写回答

2条回答 默认 最新

  • 於黾 2022-12-20 18:51
    关注

    dfs(1);是个啥,n怎么没用上,那能对吗
    t组样例,就是说后面有t行输入,每种输入对应一行输出

    评论

报告相同问题?

问题事件

  • 创建了问题 12月20日

悬赏问题

  • ¥100 HALCON DELPHI
  • ¥15 (需要远程,AI不回)VB6二进制文件转换成功,但是C#转换总是失败
  • ¥15 关于#matlab#的问题:有没有什么其他办法能够保证不退出进程(相关搜索:matlab调用)
  • ¥15 依据报错在原代吗格式的基础上解决问题
  • ¥15 在虚拟机中安装flash code
  • ¥15 单片机stm32f10x编写光敏电阻调节3.3伏大功率灯亮度(光强越大灯越暗,白天正常光强灯不亮,使用ADC,PWM等模块)望各位找一下错误或者提供一个可实现功能的代码
  • ¥20 verilog状态机方法流水灯
  • ¥15 pandas代码实现不了意图
  • ¥15 GD32H7 从存储器到外设SPI传输数据无法重复启用DMA
  • ¥25 LT码在高斯信道下的误码率仿真