Q9.9 N queens

news/2024/10/30 17:29:30/

Q: Write an algorithm to print all ways of arranging eight queens on a chess board so that none of them share the same row, column or diagonal.

A: 经典的8皇后问题。DFS

#include <iostream>
#include <string>
#include <vector>
using namespace std;void dfs(vector<int> &colum, vector<int> &main_diag, vector<int> &anti_diag, int row, vector<vector<string> > &res, vector<int> &path) {const int N = path.size();if (row == N) {vector<string> cur;for (int i = 0; i < N; i++) {string s(N,'.');s[path[i]] = 'Q';cur.push_back(s);cout<<s<<endl;}cout<<endl;res.push_back(cur);return ;		}for (int i = 0; i < N; i++) {bool ok = colum[i] == 0 && main_diag[row+i] == 0 && anti_diag[row+N-i] == 0;if (!ok) continue;path[row] = i;colum[i] = main_diag[row+i] = anti_diag[row+N-i] = 1;dfs(colum, main_diag, anti_diag, row+1, res, path);colum[i] = main_diag[row+i] = anti_diag[row+N-i] = 0;}
}vector<vector<string> > n_queen(const int n) {vector<int> colum(n, 0);vector<int> main_diag(2*n, 0);vector<int> anti_diag(2*n, 0);vector<vector<string> > res;vector<int> path(n, 0);dfs(colum, main_diag, anti_diag, 0, res, path);return res;
}int main() {n_queen(8);return 0;
}



http://www.ppmy.cn/news/945171.html

相关文章

洛谷-P1462-通往奥格瑞玛的道路

题目背景 在艾泽拉斯大陆上有一位名叫歪嘴哦的神奇术士&#xff0c;他是部落的中坚力量。 有一天他醒来后发现自己居然到了联盟的主城暴风城。 在被众多联盟的士兵攻击后&#xff0c;他决定逃回自己的家乡奥格瑞玛。 题目描述 在艾泽拉斯&#xff0c;有 n 个城市。编号为 …

猛兽之地服务器维护,猛兽之地Roguelands全材料获取途径详解

以下就是小编为大家带来的猛兽之地Roguelands全材料获取途径详解&#xff1a; 蘑菇镇主要产出&#xff1a; 发光蘑菇 屎壳螂 少量怪兽抓 古老废墟主要产出&#xff1a; 甲壳碎片 辛辣种子 星空岩 折磨大陆主要产出&#xff1a; 星之果 少量星空岩 少量怪兽爪 少量甲壳碎片 少量…

Q9

A Pythagorean triplet is a set of three natural numbers, a b c, for which, a 2 b 2 c 2 For example, 32 42 9 16 25 52. There exists exactly one Pythagorean triplet for which a b c 1000. Find the product abc. 我的代码是&#xff1a; import da…

尼姆博弈最详细解法

尼姆博弈: 博主之所以要写这么一篇题解,是因为在算法课上做过的一道题.解题代码非常简单,但是博主愣是想了两天还没想明白其中的原理,直到今天才终于恍然大悟,特此记录下来分享给大家.看完了,想必你一定会懂! 题目如下: 题目描述 Here is a simple game. In this game, there …

(7.1)标准DH和修正DH雅克比矩阵的差异

一、两种雅克比矩阵的公式及差异说明&#xff1a; 在前面的文章&#xff08;7&#xff09;中我们介绍了雅克比矩阵&#xff0c;并给出了标准DH(standard DH)参数下的雅克比矩阵的矢量积公式&#xff1b;这篇文章里我们也给出修正DH(modified DH)参数下的雅克比矩阵公式。对于矢…

Arbitrum奥德赛第一周跨链桥任务教程

​​欢迎来到“北风博客”&#xff0c;和我一起探索WEB 3.0 项目介绍 Arbitrum 作为Layer2的龙头项目&#xff0c;并且作为一个名牌奖励的基础设施项目&#xff0c;全网各大撸毛社区都在热捧&#xff0c;相信你一定有所耳闻。 此次奥德赛任务是Arbitrum生态上规模最大的一次活动…

【zz】Q9 新手问答

Q9的已经安装了6.1系统&#xff0c;默认的是国笔输入法&#xff0c;英文和数字的切换如何&#xff1f;A下面的方块键&#xff08;有一个平行四边形的图标&#xff09;。按一下就变成数字&#xff0c;但只能输入一次就又变成英文&#xff0c;连按两下&#xff0c;就可以一直输入…

分布式事务 Seata

分布式事务 Seata 事务介绍分布式理论Seata 介绍Seata 部署与集成Seata TC Server 部署微服务集成 Seata XA 模式AT 模式AT 模式执行过程读写隔离写隔离读隔离 实现 AT 模式 TCC 模式TCC 模式介绍实现 TCC 模式 Saga 模式Seata 四种模式对比 事务介绍 事务&#xff08;Transac…