
搜索-暴力DFS
文章平均质量分 63
杏花疏影里_吹笛到天明
自能窥宋玉,何必恨王昌。
展开
-
c++算法之回溯 八皇后延伸 N皇后问题
DescriptionN行N列的棋盘,放置N个皇后,要求每行、每列、每条对角线只能有1个皇后。Input第1行:1个整数N(小于14)Output第1行:1个整数K,总的方案数。如果不能放,输出0.Sample Input4Sample Output2这道题与八皇后无异,只是把8改成了n。 八皇后的思想在这里 ht原创 2017-06-19 13:19:47 · 536 阅读 · 0 评论 -
Two Paths CodeForces - 14D【dfs 树的直径】
传送门分析刚开始的时候想的是求最长路和次长路,没有注意到题目中的条件是要求2条路不能交叉(2条路不能有公共的城市)。于是乎,就枚举边,把边删掉,然后在每个块里面求最长路。刚开始想用spfa,把每条边的边权取反,求最短路,然后打着打着发现这么要枚举s,t,正解应该打树的直径(n个城市,n-1条边,联通,删去一条边之后就是2棵树)写图论习惯了vector邻接表,然而这道题数据范围只有2...原创 2018-08-08 18:02:54 · 251 阅读 · 0 评论 -
CodeForces - 6D Lizards and Basements 2【dfs】
传送门题意简述:你是火系法师,对面有一排敌人,每个敌人都有HP,你要向他们扔火球,扔 i时,i的HP减少a,同时i+1和i -1的HP减少b。法师只能攻击到2号到n-1号。如果一个人已经死了你还可以继续攻击它。问你至少要扔多少个火球才能杀死所有敌人,并依次输出每个火球的攻击目标。注意:如果一个人已经死了你还可以继续攻击它。 之前没有注意到这一点,然后觉得好复杂,还脑补出了什么死了之...原创 2018-08-06 08:35:44 · 344 阅读 · 2 评论 -
DFS——组合与排列
引子正题排列生成n维向量vector分析思考全排列分析生成下一个排列next_permutation生成可重集的全排列分析Part组合枚举组合Combination位向量法增量法能实现字典序二进制位运算法引子1.关于深搜:深度优先搜索是一种解决问题的算法策略。通常,首先它把问题解决过程分解成若干个阶段,然后递归地搜...原创 2018-02-11 11:20:58 · 2081 阅读 · 0 评论 -
OpenJudge 2.5-8783 单词接龙
Description单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的“龙”(每个单词都最多在“龙”中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。原创 2017-07-07 17:41:59 · 617 阅读 · 0 评论 -
CCF 1153素数环
话不多说了吧,终于写了一下这道题的博客,我觉得是没什么好说的,引用一下自己以前博客里的: “将题目想象成一张二维表,要往里面填1~20这20个数,可以利用框架构造 需判断数是否合法且相邻两个数之和为素数(函数判定);以及最后一个数和第一个数是否为素数(这里可以在输出时判定,节约时间)。” 需要补充一点的是,这里是任意输出一组合法解,那么只要找到第一组原创 2017-07-03 16:16:12 · 482 阅读 · 0 评论 -
OpenJudge 2.5-2990 符号三角形
Description符号三角形的第1行有n个由“+”和”“-组成的符号 ,以后每行符号比上行少1个,2个同号下面是”+“,2个异号下面是”-“ 。计算有多少个不同的符号三角形,使其所含”+“ 和”-“ 的个数相同。 n=7时的1个符号三角形如下: + + - + - + + + - - - - + - + + + -原创 2017-07-12 11:56:31 · 1252 阅读 · 0 评论 -
OpenJudge 2.5-1756 八皇后【回溯算法】
Description会下国际象棋的人都很清楚:皇后可以在横、竖、斜线上不限步数地吃掉其他棋子。如何将8个皇后放在棋盘上(有8 * 8个方格),使它们谁也不能被吃掉!这就是著名的八皇后问题。 对于某个满足要求的8皇后的摆放方法,定义一个皇后串a与之对应,即a=b1b2...b8,其中bi为相应摆法中第i行皇后所处的列数。已经知道8皇后问题一共有92组解(即92个不同的皇后串)。原创 2017-06-08 13:44:52 · 987 阅读 · 0 评论 -
c++算法之深搜 浅谈回溯与不回溯
c++算法之深搜 浅谈回溯与不回溯先说理论上的(个人意见):需要回溯的题大多都是迷宫这一类的,对这一步所做的操作不确定,可操作可不操作的(就像迷宫,这一步到底走不走并不确定),要将操作在递归之后回溯一步;如果操作对象变量在深搜函数的参里,也可以在递归里写参的时候写在参里(举个例子吧,像dfs(c+1,sum++)等价于 sum++;dfs(c+1,sum);sum--;)因为带进参里实际上也没改变原创 2017-07-10 17:05:59 · 4072 阅读 · 1 评论 -
OpenJudge 2.5-156 LETTERS(字母)
DescriptionA single-player game is played on a rectangular board divided in R rows and C columns. There is a single uppercase letter (A-Z) written in every position in the board.Before the beggi原创 2017-07-10 15:42:34 · 906 阅读 · 0 评论 -
OpenJudge 2.5-1388 Lake Counting
DescriptionDue to recent rains, water has pooled in various places in Farmer John's field, which is represented by a rectangle of N x M (1 <= N <= 100; 1 <= M <= 100) squares. Each square co原创 2017-07-10 11:57:52 · 657 阅读 · 0 评论 -
OpenJudge 2.2-1750 全排列
Description给定一个由不同的小写字母组成的字符串,输出这个字符串的所有全排列。 我们假设对于小写字母有'a' < 'b' < ... < 'y' < 'z',而且给定的字符串中的字母已经按照从小到大的顺序排列。Input输入只有一行,是一个由不同的小写字母组成的字符串,已知字符串的长度在1到6之间。Output输出这个字符串的所有排列方式,每行一个排列。要原创 2017-06-20 13:40:06 · 919 阅读 · 0 评论 -
c++算法之回溯 n的全排列
Description给出n,按顺序输出n的全排列。nInput一个整数nOutput每行一个排列。Sample Input3Sample Output123132213231312321这道题看似与八皇后有很大区别,没什么太大联系,但是我们也可以借鉴八皇后的思想,把它想成一个棋盘,往棋盘里填数(要求每一行不重复)。每原创 2017-06-19 14:04:48 · 1334 阅读 · 1 评论 -
OpenJudge 2.5-1700 八皇后问题【回溯算法】
这是一道很经典的回溯题,我们可以通过回溯算法框架来写。题目要求在国际象棋棋盘中放置8个皇后使任意两个皇后都不能互相吃(皇后能吃同一行、同一列、同一对角线的任意棋子)。 分析如下: 很容易想到棋盘上每放一个皇后就标记该行该列以及主对角线和从对角线。用bool数组md(main diagonal)和cd()标志两条对角线。 显然问题在于如何标记某个皇后所在的行、列、对角线上是否有别的皇后;可以从矩阵的特点上找到规律,显而易见的是:如果在同一行,则行号相同;如果在同一列上,则列号相同;对角线可以通过画图原创 2017-05-27 22:22:48 · 1787 阅读 · 2 评论 -
c++算法之回溯 素数环(一)
题目描述:从1到20这20个数摆成一个环,要求相邻的两个数的和是一个素数。请输出所有方案(一本通例5.3)题目分析:将题目想象成一张二维表,要往里面填1~20这20个数,可以利用框架构造 需判断数是否合法且相邻两个数之和为素数(函数判定);以及最后一个数和第一个数是否为素数(这里可以在输出时判定,节约时间)。原创 2017-05-28 23:02:59 · 2506 阅读 · 0 评论 -
c++算法之回溯 素数环(二)
Description输入正整数n,把整数1,2,3,…,n组成一个环,使得相邻两个整数之和均为素数。把全部的解按字典序排序后,从1开始编号,依次输出指定编号的k组解。最后一行输出总的方案数。同一个素数环只算一次。Input第1行:2个整数,n(n<=18)和k(1<=k<=10)第2行:共有k个从小到大排列的整数,表示要输出的解的编号。Output前k行,每行一组解,对应于一个输入原创 2017-06-02 14:45:36 · 2647 阅读 · 1 评论 -
【暴搜】Jetpack 6.22测试COCI
样例输入 11.....XX...X....XX...XX...XX...XX................XXX....................X.........XX...X....XX...XX....X...XX..样例输出 1 2 1 47 2样例输入 220X..................X.X................X...原创 2019-06-23 11:16:15 · 369 阅读 · 0 评论