
搜索
kaisa158
HIT、机器学习
展开
-
POJ 1321 棋
思路:深搜,每次从上一个放棋子地方的下一行开始寻找可以放棋子的地方,发现该点时,记录行数,并更新棋盘,将与此点同行同列的都更新为'.',如果找不到,则返回。当所有棋子放置完毕,计数+1,就这样进行搜索。原创 2015-07-07 16:46:25 · 586 阅读 · 0 评论 -
poj 3414 Pots(BFS)(简单题)
题意: 两个杯子,一个勺,两个杯子的水量通过勺子装水或倒水操作变化,求最初状态变化到最终状态所需最小步数。思路: bfs遍历,每次有6种变化,由最初状态变化到最终状态所需最小步数。原创 2015-07-16 21:18:52 · 755 阅读 · 0 评论 -
poj 1945 Power Hungry Cows(BFS)(简单题)
思路: 很简单的题目,直接BFS。由(0,1)经过变换到目标所需最先步数。先放代码上来,有空再改改原创 2015-07-16 21:10:48 · 2322 阅读 · 2 评论 -
hdu 1560 DNA sequence(迭代加深搜索)(经典题)
题意: 从n个串中找出一个最短的公共串,,该公共串对于n个字符串不要求连续,即只要保持相对顺序就好。思路: 用迭代加深搜索,所谓迭代加深搜索,就是限制DFS的深度,若搜不到答案,则加深深度,重新搜索,这样就防止了随着深度不断加深而进行的盲目搜索,而且,对于这种求最短长度之类的题目,只要找到可行解,即是最优解了。同时注意剪枝,每次DFS的时候,都要判断一下,当前的深度+最少还有加深的深度是否大于限制的长度,若是,则退回上一层状态。原创 2015-07-15 21:08:58 · 2209 阅读 · 0 评论 -
codeforces 374C C. Inna and Dima(DFS)
题意: 在图中找出最多有多少个连着的DIMA。没有,输出 "Poor Dima!" ;形成环即为无穷个,输出"Poor Inna!";否则输出最大个数。原创 2015-07-16 11:23:01 · 843 阅读 · 0 评论 -
A*算法入门
本文转载于http://www.cppblog.com/mythit/archive/2009/04/19/80492.aspx在看下面这篇文章之前,先介绍几个理论知识,有助于理解A*算法。启发式搜索:启发式搜索就是在状态空间中的搜索对每一个搜索的位置进行评估,得到最好的位置,再从这个位置进行搜索直到目标。这样可以省略大量无畏的搜索路径,提到了效率。在启发式搜索中,对位置的估价转载 2015-07-14 17:33:08 · 632 阅读 · 0 评论 -
HDU 1195 Open the Lock(双向BFS)
思路:双向BFS 分别从开始项和结束项出发BFS遍历,相遇时输出答案并跳出搜索。原创 2015-07-14 23:02:47 · 570 阅读 · 0 评论 -
BFS、双向BFS和A*
转载于http://blog.youkuaiyun.com/wdkirchhoff/article/details/41121517自己修改了部分BFS、双向BFS和A*Table of Contents1. BFS2. 双向BFS3. A*算法光说不练是没用的,我们从广为人知的POJ 2243这道题谈起:题目大意:给定一个起点和一个终点,按骑士的走法(走日字)转载 2015-07-14 19:11:27 · 1457 阅读 · 0 评论 -
HDU 1044 Collect More Jewels(BFS+DFS)
HDU 1044 Collect More Jewels(BFS+DFS)题意: 在一个迷宫中,从起点走到终点,路径还有数个宝物,问在给定的时间内,到达终点后所能获取宝物的最大价值。1、求入口到第一个取宝物的地方的最短距离 2、求第i个取宝物的地方到第i+1个取宝物的地方的最短距离 3、求第n个取宝物的地方到出口的最短距离 4、保证以上3点能在时间L内实现的情况下,取得的宝石价值最大(DFS)原创 2015-07-10 20:15:10 · 524 阅读 · 0 评论 -
poj 迷宫问题(简单题)
迷宫问题,思路: 基础题,弄懂队列原理就ok。原创 2015-07-10 16:44:05 · 3685 阅读 · 1 评论 -
poj 1426 Find The Multiple
大致题意:给出一个整数n,(1 <= n <= 200)。求出任意一个它的倍数m,要求m必须只由十进制的'0'或'1'组成解题方法: BFS+同余模定理转载 2015-07-09 15:21:32 · 441 阅读 · 0 评论 -
poj 3126 Prime Path(简单题)
题意: 给定两个四位数a,b,皆为素数,求由a修改至b的最少需要的次数。要求每次只能修改一位,且修改后的数必须是素数。思路: 由于数是四位数,每次修改一位,一共有9*9*9*9种情况,BFS,对于每种情况,如果修改后的数满足条件即入队。原创 2015-07-09 17:24:56 · 802 阅读 · 0 评论 -
poj 3278 Catch That Cow
思路:对于任意起点,只有三种操作,即*2,+1,-1;每次操作所得值若小于100000且未访问过即入队列,当该值等于终点即求出最少步数。原创 2015-07-08 15:26:28 · 493 阅读 · 0 评论 -
置换的玩笑(搜索)(中等)(计蒜之道 测试赛 c)
思路: 字符串的长度为l;则共有(l-9)/2+9个数,从1到(l-9)/2+9;用dfs遍历每一种情况。输出合适的结果。原创 2015-07-13 14:56:29 · 987 阅读 · 0 评论