八皇后问题解题报告(dfs】的更多相关文章

这里是代码传送门 所谓八皇后问题,一开始接触,上学期舍友提及的,但是因为各种原因,水平不够,并没有关心,偶然之间,再次遇见,便进行的尝试(棋盘是0-7的,不是1-8的...开始打弄错了) 所谓八皇后问题,就是在8X8的棋盘上,求如何让可以往八个方向直走的皇后不互相攻击的摆放方法的解; 很显然,我的第一想法是用深搜剪枝(书上说是 回朔法 ) 如何实现呢?我的想法是,先预定让每个皇后占一行,然后暴力搜索皇后所在列的情况,然后递归剪掉不满足的情况: 代码如下 #include<cstdio> #in…
P1379 八数码难题 题目描述 在3×3的棋盘上,摆有八个棋子,每个棋子上标有1至8的某一数字.棋盘中留有一个空格,空格用0来表示.空格周围的棋子可以移到空格中.要求解的问题是:给出一种初始布局(初始状态)和目标布局(为了使题目简单,设目标状态为123804765),找到一种最少步骤的移动方法,实现从初始布局到目标布局的转变. 输入输出格式 输入格式: 输入初始状态,一行九个数字,空格用0表示 输出格式: 只有一行,该行只有一个数字,表示从初始状态到目标状态需要的最少移动次数(测试数据中无特殊…
题目在此:http://poj.org/problem?id=1014 要看清题意呢,题中要求输入的是价值分别为1,2,3,4,5,6的大理石的个数,而不是6块价值为输入数字的大理石!选这个题主要想练习一下深搜.在网上看到了一段代码,深搜时使用了贪心算法虽然可以AC但是有很大的漏洞: 如测试数据(0 0 3 0 3 1)便会出现错误:  搜索时候会选中:价值为6,5,3的各一个进而判断出不可以分割.但是正确的分割方式应该是6+3+3+3=15. 这个是网上有漏洞的代码: #include<ios…
P2123 皇后游戏 题意: 给定\(T\)组长为\(n\)的\(A\),\(B\)数组和\(C\)的计算方法,求一种排列方法,使最大的\(C\)最小化. 数据范围: \(1 \le T \le 10,1 \le n \le 20000,1 \le A_i,B_i \le 10^9\) 其实这种题基本可以通过求邻项交换来贪心了(上午还想错了) 分析一下我们可以知道最大的C即是最后一项\(C\),如果我们只考虑最后两个项\(c_1,c_2\),我们可以找到一个最优方法. 但事实上,对任意两项,我们…
题目链接: https://www.luogu.org/problem/show?pid=1219#sub row:受上面的皇后通过列控制的位置 ld:受上面的皇后通过从右至左的斜对角线控制的位置 rd:受上面的皇后通过从左至右的斜对角线控制的位置 upperlim:每一列都被控制时row的状况 #include <cstdio> using namespace std; ][], a[], n; void test(int row, int ld, int rd) { if (row ==…
题目描述: 班上有 N 名学生.其中有些人是朋友,有些则不是.他们的友谊具有是传递性.如果已知 A 是 B 的朋友,B 是 C 的朋友,那么我们可以认为 A 也是 C 的朋友.所谓的朋友圈,是指所有朋友的集合. 给定一个 N * N 的矩阵 M,表示班级中学生之间的朋友关系.如果M[i][j] = 1,表示已知第 i 个和 j 个学生互为朋友关系,否则为不知道.你必须输出所有学生中的已知的朋友圈总数. 示例 1: 输入: [[1,1,0], [1,1,0], [0,0,1]] 输出: 2 说明:…
题目链接:https://www.luogu.org/problemnew/show/P2123 题目大意: 给定a数组和b数组,要求最小化c数组中的最大值 题解: 考虑微扰法,推一波式子先 设$x=\sum_{q=1}^{i-1}a[q]$,$y=c[i-1]$,与i相邻在i之后的大臣的编号为j 发现c数组是递增的,于是$max(c_i,c_j)=c_j$ $c_j=max(max(y,x+a_i)+b_i,x+a_i+a_j)+b_j$ $max(y+b_i+b_j,x+a_i+b_i+b_…
题目描述: 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个棋子的所有可行的摆放方案C. Input 输入含有多组测试数据. 每组数据的第一行是两个正整数,n k,用一个空格隔开,表示了将在一个n*n的矩阵内描述棋盘,以及摆放棋子的数目. n <= 8 , k <= n 当为-1 -1时表示输入结束. 随后的n行描述了棋盘的形状:每行有n个字符,其中 # 表示棋盘区域,…
重看了一下刘汝佳的白板书,上次写八皇后时并不是很懂,再写一次: 方法1:逐行放置皇后,然后递归: 代码: #include <bits/stdc++.h> #define MAXN 8 #define ll long long using namespace std; ll ans=; int c[MAXN]; void dfs(int cur) { if(cur==MAXN) ans++; //***因为是逐行放置的,所以只要走到最后一行则肯定可行 else { ; i<MAXN; i…
目录:1.潜伏者 [map] 2.Hankson的趣味题[数论]3.mayan游戏[dfs] 题目: 1. 潜伏者(spy.pas/c/cpp)[问题描述]R 国和S 国正陷入战火之中,双方都互派间谍,潜入对方内部,伺机行动.历经艰险后,潜伏于S 国的R 国间谍小C 终于摸清了S 国军用密码的编码规则:1. S 国军方内部欲发送的原信息经过加密后在网络上发送,原信息的内容与加密后所的内容均由大写字母‘A’—‘Z’构成(无空格等其他字母).2. S 国对于每个字母规定了对应的“密字”.加密的过程就…