C++实现 1432. 棋盘挑战

  大家好,我叫亓官劼(qí guān jié ),在CSDN中记录学习的点滴历程,时光荏苒,未来可期,加油~博主目前仅在CSDN中写博客,唯一博客更新的地址为:亓官劼的博客 ,同时正在尝试在B站中做一些内容分享,B站主页为: 亓官劼的B站主页

本文原创为亓官劼,请大家支持原创,部分平台一直在恶意盗取博主的文章!!!
若需联系博主,可以联系本人微信:qiguanjie2015


题目

给定一个 N×N 的棋盘,请你在上面放置 N 个棋子,要求满足:

  • 每行每列都恰好有一个棋子
  • 每条对角线上都最多只能有一个棋子
    1   2   3   4   5   6-------------------------
1 |   | O |   |   |   |   |-------------------------
2 |   |   |   | O |   |   |-------------------------
3 |   |   |   |   |   | O |-------------------------
4 | O |   |   |   |   |   |-------------------------
5 |   |   | O |   |   |   |-------------------------
6 |   |   |   |   | O |   |-------------------------

上图给出了当 N=6 时的一种解决方案,该方案可用序列 2 4 6 1 3 5 来描述,该序列按顺序给出了从第一行到第六行,每一行摆放的棋子所在的列的位置。

请你编写一个程序,给定一个 N×N 的棋盘以及 N 个棋子,请你找出所有满足上述条件的棋子放置方案。

输入格式

共一行,一个整数 N。

输出格式

共四行,前三行每行输出一个整数序列,用来描述一种可行放置方案,序列中的第 i 个数表示第 i 行的棋子应该摆放的列的位置。

这三行描述的方案应该是整数序列字典序排在第一、第二、第三的方案。

第四行输出一个整数,表示可行放置方案的总数。

数据范围

6≤N≤13

输入样例:

6

输出样例:

2 4 6 1 3 5
3 6 2 5 1 4
4 1 5 2 6 3
4

算法思路

这里采用爆搜的思路,dfs。每次搜索的时候判断当前是否可以放,搜索完成后回溯,恢复现场。

算法实现

#include<iostream>
using namespace std;
const int N = 15;
int col[N],dg[N*2],udg[N*2],path[N];
int ans = 0,n;
void dfs(int x){if(x > n){ans++;if(ans <= 3){for(int i = 1 ; i <= n; i++)cout<<path[i] << " ";cout<<endl;}return ;}for(int i = 1; i <= n; i++){if(!col[i] && !dg[i+x] && !udg[x-i+n]){path[x] = i;col[i] = dg[x + i] = udg[x - i + n] = 1;// 向前搜索dfs(x + 1);// 状态恢复col[i] = dg[x + i] = udg[x - i + n] = 0;path[x] = 0;}}
}
int main(){cin >> n;dfs(1);cout<<ans;return 0;
}

C++实现 1432. 棋盘挑战相关推荐

  1. 【寒假每日一题】棋盘挑战(个人练习)详细题解+推导证明(第十六天)

    文章目录 前言 题目 详细题解 写法1 推导证明 举一反三 总结 前言 今天是经典的深度优先搜索问题,即八皇后问题. 作为经典问题,我发现了一种新的写法,不需要开二维数组即可完成. 题目 给定一个 N ...

  2. 寒假每日一题(入门组)【week3 完结】

    目录 1208. 翻硬币[贪心] 1532. 找硬币[哈希] 1341. 十三号星期五[日期模拟] 754. 平方矩阵 II[规律] 1432. 棋盘挑战[dfs] 1371. 货币系统[DP 完全背 ...

  3. 河工计院ACM2022寒假培训题单以及超详细题解

    目录 货仓选址 校门外的树 奖学金 蛇形矩阵 找硬币 回文平方 品种邻近 平方矩阵 II 十三号星期五 阶乘 干草堆 火星人 整数集合划分 最大的和 剪绳子 分巧克力 a^b 数独检查 ISBN号码 ...

  4. 挑战王者荣耀“绝悟” AI,我输了!

    作者 | 马超 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 腾讯 AI Lab 与王者荣耀联合研发的策略协作型AI,"绝悟"首次开放大规模开放:5月1日至4日, ...

  5. AI一分钟 | 厉害了!BBC记者挑战中国天网工程,潜逃仅7分钟被抓;百度狂砸20亿,设国内最大规模的AI专项风投基金

    一分钟AI 谷歌开放AlphaGo教学工具,网友可与AI在线围棋直接对垒. BBC记者挑战中国行人自动识别系统"天网工程",潜逃7分钟后被抓获. 微软宣布投资5000万美元,用于解 ...

  6. 演讲实录丨中科大陈小平教授《从封闭性到非封闭性:2020到2035年智能机器的机遇和挑战》...

    来源:中国人工智能学会 陈小平 中国科学技术大学机器人实验室主任.教授 以下是陈小平教授的演讲实录: 非常高兴有这个机会进行中.新学术交流.本报告包括四方面内容.第一,关于人工智能(简称AI)的两种类 ...

  7. 科大讯飞 ai算法挑战赛_为井字游戏挑战构建AI算法

    科大讯飞 ai算法挑战赛 by Ben Carp 通过本·卡尔普 为井字游戏挑战构建AI算法 (Building an AI algorithm for the Tic-Tac-Toe challen ...

  8. 挑战王者荣耀“绝悟” AI,会进化的职业选手太恐怖了!

    作者 | 马超 责编 | 伍杏玲 出品 | CSDN(ID:CSDNnews) 腾讯 AI Lab 与王者荣耀联合研发的策略协作型AI,"绝悟"首次开放大规模开放:5月1日至4日, ...

  9. Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋

    Python百日百行代码挑战-day8,day9,day10,游戏实战系列-五子棋 写在前面 需要用到的工具包和参考 游戏设定 初始化 切换下棋方 判断五子连珠(核心) 鼠标点击流程事件 成品展示 打 ...

最新文章

  1. 设计模式之创建型模式
  2. 在有序但含有空的数组中查找字符串
  3. 数据驱动科技赋能,东吴证券打造数据中台“九大能力”
  4. 可用于神经网络的一些matlab函数
  5. 大数据之-Hadoop3.x_MapReduce_shuffle机制---大数据之hadoop3.x工作笔记0110
  6. 图卷积神经网络入门详解
  7. 线程安全的单例模式(Java)
  8. 信息安全从业者工作规划及能力建设
  9. [不好分类]《凤凰项目》读后感
  10. element upload 上传文件报错status of undefined
  11. spark+dataframe+小汽车摇号倍率与中签率分析
  12. hutool导出导出excel中文自适应列宽+反射+自定义注解获取表头
  13. 痞子衡嵌入式:深扒i.MXRTxxx系列ROM中集成的串行NOR Flash启动SW Reset功能及其应用场合...
  14. 参考平面及其高度_海图基准面、深度基准、标高等常用参考标准
  15. Airsim+UnrealEngine4 搭建无人车/无人机自动驾驶仿真环境
  16. scratch双语教师课件文档手册 1.初识scratch
  17. 视频服务器(6) Kurento[1] rtsp2webrtc
  18. 一个域名如何解析到多个ip地址
  19. 分布式系统学习共性总结:
  20. Yoshua Bengio 、吴恩达等预见2022年人工智能趋势

热门文章

  1. excel 2010 删除重复行(按某一列重复)
  2. android蓝牙查看电池容量_Android查看电池电量的方法(基于BroadcastReceiver)
  3. css设置元素抛物线,CSS3 抛物线波动(Parabola Wave)
  4. makefile编写总结
  5. 【计科快速入门】五、算术逻辑单元
  6. 当西门子遇上施耐德:S7-12001500与M241的Ethernet通讯
  7. Knowledge Graph Embedding: A Survey of Approaches and Applications (2)
  8. 6个让您获得更佳的移动分析体验的提示
  9. Apache Calcite论文概要
  10. 带孩子们做环球旅行的读后感_年轻爸妈别糊涂,这些奶奶、姥姥们不适合带孩子...