——搜索——
文章平均质量分 55
林铱眀
这个作者很懒,什么都没留下…
展开
-
魔板 Magic Squares(bfs优化)
在成功地发明了魔方之后,鲁比克先生发明了它的二维版本,称作魔板。这是一张有8个大小相同的格子的魔板:1 2 3 48 7 6 5我们知道魔板的每一个方格都有一种颜色。这8种颜色用前8个正整数来表示。可以用颜色的序列来表示一种魔板状态,规定从魔板的左上角开始,沿顺时针方向依次取出整数,构成一个颜色序列。对于上图的魔板状态,我们用序列(1,2,3,4,5,6,7,8)来表示。这是基本状态。这里提供三种基本操作,分别用大写字母“A”,“B”,“C”来表示(可以通过这些操作改变魔板的状态):“A”:交换原创 2022-06-02 22:44:33 · 198 阅读 · 0 评论 -
Fliptile(状态压缩/枚举)
3279 – Fliptile (poj.org)Farmer John knows that an intellectually satisfied cow is a happy cow who will give more milk. He has arranged a brainy activity for cows in which they manipulate an M × N grid (1 ≤ M ≤ 15; 1 ≤ N ≤ 15) of square tiles, each of whic原创 2022-06-02 21:04:03 · 181 阅读 · 0 评论 -
Knight Moves POJ 1915(bfs)
编写一个程序,计算一个骑士从棋盘上的一个格子到另一个格子所需的最小步数。骑士一步可以移动到的位置由下图给出。一匹马走日字,给定起点和终点,问所需要的最小步骤。一般问到最值很明显就是bfs了,图太大了也不适合dfs。vec是向量,保存了一个点能跳到的坐标。保存从起点开始能第一次跳到的坐标的所有情况,并且刷新这些点的访问情况,访问过的、出界的不访问,按照队列结构依次往下重复直到到达目标点为止。...原创 2022-06-01 20:50:14 · 262 阅读 · 0 评论 -
山峰和山谷 Ridges and Valleys(bfs)
水平竖直和斜方向是一个点数值的比较对象,一共八个。相同的的高度可以连接在一起,形成山谷、山峰或者啥都不是。如果对于一个连接在一起的一块地方,其任意一点周围高度都比他小,那他就是山峰;反之为山谷;有大有小啥也不是。bfs。搜索相同高度的点,还要看这个点周围一圈的高度大小:有大的就标记isV意味着是山谷,有小的就表记isR,两者同时为true就啥都不是,都是false就以为着既是山峰又是山谷(题意)。其中任一true而另外不true就意味着是山峰或者山谷,对应的sumR++或sumV++即可。比较重要的是,每次原创 2022-06-01 21:28:05 · 332 阅读 · 0 评论 -
小木棍 P1120(回溯剪枝)
P1120 小木棍 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过 505050。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。第一行是一个整数 nnn,表示小木棍的个数。第二行有 nnn 个整数,表示各个木棍的长度 aia_iai。输出一行一个整数表示答案。样例输出 #1提示对于全部测试点,1≤n≤651 \l原创 2022-06-01 21:15:57 · 139 阅读 · 0 评论 -
Guarding the Chessboard(暴力搜索)
Guarding the Chessboard - UVA 11214 - Virtual Judge (vjudge.net)用最少的皇后占领标记的格子。暴力搜索。1,枚举每个节点摆放情况,摆到目标个数就检查,检查合格就输出,不合格则增加摆放个数重新搜索。2,确定枚举上限。3,回溯不能一下子直接设置为0,要使用预先记录的值,横/纵/对角线/副对角线状态不一定一样。原创 2022-06-02 00:06:45 · 113 阅读 · 0 评论 -
Prime Ring Problem UVA - 524(回溯)
打印所有素数环,数值都是1-n。回溯算法,素数筛。先打表。然后dfs:先看看两数只和是不是素数(查表),然后再往下递归,另外已经用过的数字不能出现第二次,用布尔数组下标当做数,布尔值来表示能不能访问。递归完之后别忘了还原之前的数值。原创 2022-06-01 20:54:55 · 78 阅读 · 0 评论 -
Biggest Number(回溯/bfs/剪枝)
Biggest Number - UVA 11882 - Virtual Judge (vjudge.net)寻找最大的数。dfs(回溯)+剪枝(bfs).由于string的大小比较和本题数字的大小比较类似,所以用string更方便。每一次dfs时要考虑当前节点之后所能串起来的,分为三种情况:1,太少,显然不满足,跳过当前的节点的dfs(剪枝);2,+当前的长度now能跟之前一样长,那就比较ans的子字符串跟当前的now字符串谁大,如果ans大那就没必要继续(剪枝);3,+当前now的长度比ans的长度更长原创 2022-06-01 20:00:35 · 124 阅读 · 0 评论 -
Crazy Robot(dfs)
Problem - 1613E - Codeforces从L开始找到一条路径只有一或者两个开口。dfs,对于每个合法节点看其周边的封堵的方向个数封堵的方向个数必须>=3才可以,从’L’开始搜。本题n*m原创 2022-06-01 20:07:57 · 136 阅读 · 0 评论