
搜索
ACM搜索
正月看飞雪
这个作者很懒,什么都没留下…
展开
-
POJ - 2965 The Pilots Brothers' refrigerator 枚举 + 位运算
题目描述给定4 * 4 的图 要求把图全部变成'-'号按一下某一个点 会吧这行列的元素都翻转问最少需要几步 并且输出操作步骤样例Sample Input-+-----------+--Sample Output61 11 31 44 14 34 4思路用一个整数state(二进制)代表当前的状态, 数位上的,0代表-, 1代表+,4*4的图的所有的方案数...原创 2020-03-24 17:33:16 · 168 阅读 · 0 评论 -
数据结构实验:如何用bfs打印出最短路径
路径打印bfs的路径打印是把每一个map中的点记录, 假设用distance数组记录每个点对应的步数,则会出现一条单调1-2-3-4-----一直递增到最短步数的路径, 此时的这条路径即使最短路径。如图中0表示可以走,1表示由一条递增序列可以得到最短路径 1-2-3-4-5-6-7-8将每个点的坐标链接起来,由下一步的点去保存上一个坐标,如map[i][j] = (x,y);而(x,...原创 2019-11-07 23:02:21 · 720 阅读 · 0 评论 -
估计函数与迭代加深相结合:IDA*算法
定义IDA* 算法就是基于迭代加深的A*算法。 A*算法的关键在于设计估价函数。既然估价函数与优先队列BFS结合可以产生A"算法,那么估价函数能否与DFS结合呢?当然,DFS也有一个缺点,就是一旦估价出现失误,容易向下递归深入一个不能产生最优解的分支,浪费许多时间。因此,我们最终选择把估价函数与迭代加深的D...原创 2020-02-01 18:43:56 · 517 阅读 · 0 评论 -
POJ 2286 The Rotation Game IDA*算法
问题描述如下图所示,有一个“#”形的棋盘,上面有1,2,3三种数字各8个。给定8种操作,分别为图中的A~H。这些操作会按照图中字母和箭头所指明的方向,把一条长为8的序列循环移动1个单位。例如下图最左边的“#”形棋盘执行操作A后,会变为下图中间的“#”形棋盘,再执行操作C后会变成下图最右边的“#”形棋盘。给定一个初始状态,请使用最少的操作次数,使“#”形棋盘最中间的8个格子里的数字相同。...原创 2020-02-01 18:43:42 · 1715 阅读 · 0 评论 -
POJ3460 Booksort IDA*算法
题目描述给定n本书,编号为1-n。在初始状态下,书是任意排列的。在每一次操作中,可以抽取其中连续的一段,再把这段插入到其他某个位置。我们的目标状态是把书按照1-n的顺序依次排列。求最少需要多少次操作。输入格式第一行包含整数T,表示共有T组测试数据。每组数据包含两行,第一行为整数n,表示书的数量。第二行为n个整数,表示1-n的一种任意排列。同行数之间用空格隔开。输出格式每组数...原创 2020-02-01 18:26:36 · 3068 阅读 · 0 评论 -
POJ 1077 Eight A*算法求解
题目描述 在一个3×3的网格中,1~8这8个数字和一个“X”恰好不重不漏地分布在这3×3的网格中。在游戏过程中,可以把“X”与其上、下、左、右四个方向之一的数字交换(如果存在)。我们的目的是通过交换,使得网格变为如下排列(称为正确排列):例如,示例中图形就可以通过让“X”先后与右、下、右三个方向的数字交...原创 2020-02-01 14:41:31 · 3495 阅读 · 0 评论 -
启发式搜索:A*算法
定义 A*算法,(A-Star)算法是一种静态路网中求解最短路径最有效的直接搜索方法,也是解决许多搜索问题的有效算法。算法中的距离估算值与实际值越接近,最终搜索速度越快。推理 如果给定一个“目标状态”, 需要求出从初...原创 2020-02-01 12:34:26 · 980 阅读 · 0 评论 -
HDU3085 NightmareⅡ 双向BFS
题目描述给定一张N*M的地图,地图中有1个男孩,1个女孩和2个鬼。字符“.”表示道路,字符“X”表示墙,字符“M”表示男孩的位置,字符“G”表示女孩的位置,字符“Z”表示鬼的位置。男孩每秒可以移动3个单位距离,女孩每秒可以移动1个单位距离,男孩和女孩只能朝上下左右四个方向移动。每个鬼占据的区域每秒可以向四周扩张2个单位距离,并且无视墙的阻挡,也就是在第k秒后所有与鬼的曼哈顿距离不超过2k的...原创 2020-01-31 17:28:02 · 511 阅读 · 0 评论 -
POJ 3635 Full Tank 优先队列BFS
问题描述有N个城市(编号0、1…N-1)和M条道路,构成一张无向图。在每个城市里边都有一个加油站,不同的加油站的单位油价不一样。现在你需要回答不超过100个问题,在每个问题中,请计算出一架油箱容量为C的车子,从起点城市S开到终点城市E至少要花多少油钱?注意: 假定车子初始时油箱是空的。输入格式第一行包含两个整数N和M。第二行包含N个整数,代表N个城市的单位油价,第i个数即为第i个城市...原创 2020-01-31 15:50:25 · 1847 阅读 · 0 评论 -
POJ3322 Bloxorz “迷宫”类经典例题
题目大意游戏地图是一个N行M列的矩阵,每个位置可能是硬地(用”.”表示)、易碎地面(用”E”表示)、禁地(用”#”表示)、起点(用”X”表示)或终点(用”O”表示)。你的任务是操作一个1×1×2的长方体。这个长方体在地面上有两种放置形式,“立”在地面上(1×1的面接触地面)或者“躺”在地面上(1×2的面接触地面)。在每一步操作中,可以按上下左右四个键之一。按下按键之后,长方体向对应的方向...原创 2020-01-30 18:10:57 · 2301 阅读 · 0 评论 -
搜索优化技巧:双向搜索
双向搜索 除了迭代加深之外,双向搜索也可以避免在深层子树上浪费时间。在一些题目 中,问题不但具有“初态”, 还具有明确的“终态”,并且从初态开始搜索与从终态开始逆向搜索产生的搜索树都能覆盖整个状态空间。在这种情况下,就可以采用双向搜索一从初态和终态出发各搜索一半状态, 产生两棵深度减半的搜索树,在中间交会、组合...原创 2020-01-30 15:35:30 · 1520 阅读 · 0 评论 -
搜索优化技巧:迭代加深
迭代加深 深度优先搜索每次选取一个分支,进行一条路走到黑的搜索,一直到递归的边界才回溯,这样会存在一个缺陷。如果搜索树的分支数目特别多,但是问题的答案在比较浅的一个节点上,那么会做很多无用功,浪费很多时间。 如图如过用深度优先的话...原创 2020-01-30 12:45:04 · 602 阅读 · 0 评论 -
搜索优化技巧:剪枝
定义 剪枝, 就是减少搜索规模, 尽早排除不可能的选项,和一定不会成为最优解的选项,形象的说就好像剪掉了搜索树的枝,所以叫做剪枝。剪枝的常用方法优化搜索顺序 在一些搜索问题中,搜索树的各个层次, 各个分支之间的顺序不...原创 2020-01-29 16:50:16 · 1112 阅读 · 0 评论 -
POJ3074 Sudoku DFS + 数据优化
题目大意数独是一种传统益智游戏,你需要把一个9 × 9的数独补充完整,使得图中每行、每列、每个3 × 3的九宫格内数字1~9均恰好出现一次。请编写一个程序填写数独。思路搜索边界分为两种:1.是如果所有位置都被填满,就找到了一个解.2. 如果发现某个位置没有能填的合法数字,说明当前分支搜索失败,应该回溯去尝试其他分支.由于本题数据比较严格, 不能像POJ2676那样一个一个尝...原创 2020-01-29 14:22:36 · 447 阅读 · 0 评论 -
POJ 1011 Sticks 【dfs + 枝剪】
**Sticks**.DescriptionGeorge took sticks of the same length and cut them randomly until all parts became at most 50 units long. Now he wants to return sticks to the original state, but he forg...原创 2019-11-23 11:14:12 · 188 阅读 · 0 评论 -
HDU 1530 最大团问题 dfs+枝剪+dp
Maximum CliqueTime Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6676 Accepted Submission(s): 3388Problem DescriptionGiven a graph G(V, E)...原创 2019-11-23 10:07:04 · 312 阅读 · 0 评论 -
poj 1190 生日蛋糕【重要枝剪】
生日蛋糕Time Limit: 1000MS Memory Limit: 10000KTotal Submissions: 26207 Accepted: 9342Description7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为Ri, 高度为Hi的圆柱。当i ...原创 2019-11-23 00:02:46 · 171 阅读 · 0 评论 -
POJ 2676 Sudoku 【dfs】
SudokuTime Limit: 2000MS Memory Limit: 65536KTotal Submissions: 27881 Accepted: 12773 Special JudgeDescriptionSudoku is a very simple task. A square table with 9 rows and 9 columns is divided t...原创 2019-11-22 22:08:58 · 236 阅读 · 0 评论 -
hdu 4394 Digital Square【标准DFS】
Digital SquareTime Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 2376 Accepted Submission(s): 996Problem DescriptionGiven an integer N,you ...原创 2019-11-22 21:36:24 · 203 阅读 · 0 评论 -
POJ 3126 Prime Path【BFS + 打印素数表】
The ministers of the cabinet were quite upset by the message from the Chief of Security stating that they would all have to change the four-digit room numbers on their offices.— It is a matter of sec...原创 2019-11-09 15:36:24 · 214 阅读 · 0 评论 -
HDU 1495 非常可乐 【BFS + 倒水问题】
非常可乐–倒水问题Problem Description大家一定觉的运动以后喝可乐是一件很惬意的事情,但是seeyou却不这么认为。因为每次当seeyou买了可乐以后,阿牛就要求和seeyou一起分享这一瓶可乐,而且一定要喝的和seeyou一样多。但seeyou的手中只有两个杯子,它们的容量分别是N 毫升和M 毫升 可乐的体积为S (S<101)毫升 (正好装满一瓶) ,它们三个之间可以...原创 2019-11-08 22:35:23 · 317 阅读 · 0 评论 -
POJ3279 Fliptile 二进制枚举
**POJ327二进制枚举**Description: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 ×...原创 2019-11-07 21:21:21 · 261 阅读 · 0 评论