专题一 简单搜索 题集

简单搜索专题间间断断做了4个晚上,写下题解和总结。

A - 棋盘问题 POJ - 1321
题意: 给你棋盘能放的位置,求摆放k个棋子不能同行同列的方案数。
题解: 棋盘只有8行,没有必要状压dp,直接dfs搞出所有情况,最坏时间复杂度为8!

结:
简单搜索题目,我们会计算复杂度很重要,能爆搜就不用想那么多了。



B - Dungeon Master POJ - 2251
题意:在三维的空间里,问S能否走到E,如果能,最小的时间是多少。
题解:三维的BFS

结:
简单搜索题目,在选择用深搜和广搜中,明显的广搜能解决任何深搜问题,只不过时间问题。
深搜更偏向于能否找到这个点,广搜偏向于需要求最优的结果。



C - Catch That Cow POJ - 3278
题意:给予2个数a,b;a在进行最少几次操作(a+1,a-1,2*a)能得到b。
题解:求最优,用广搜,注意剪枝。

D - Fliptile POJ - 3279
题意:给一个矩阵,操作(改变一个数值,同时改变相邻格的数值【0变1,1变0】)能使矩阵全为0。
题解:我们发现确定第一行,我们每行为中心让其上一行为0,那么就确定了其操作,那么只要状态压缩枚举第一行的状态,在计算最小可行的操作即可

E - Find The Multiple POJ - 1426
题意:给出一个数n,找到由1,0,组成的n的倍数。
题解:强行暴力BFS到ulld,发现20位刚好能处理完1-100里的可行值。。。
然而在51nod上发现一个升级版的,将10^i每个都%n,得到的值,进行01背包取舍。

F - Prime Path POJ - 3126
题解:给出两的4位数a,b,从a到b每次变一个位上的数,并且得到的数都得质数,问最小几次能变到b。
题解:BFS

G - Shuffle'm Up POJ - 3087
这题模拟题吧

H - Pots POJ - 3414
题意:给出两个杯子容量,三种操作,问能否得到一个确切的水量。
题解:BFS,自行模拟出这几种操作后的杯子水量变化。

I - Fire Game
题意:对于一个铺有草的图,两个孩子在两个地方一起点火,火会随时间蔓延,使草烧完时间最少需要时间。
题解:枚举选择两个草点,BFS压进两个点。

结:
简单搜索题目,我们可以压多个点BFS,表示同时,或紧随着进行的操作。J题先后压队列体现紧随。



J - Fire! UVA - 11624
题意:给出图,有障碍位置,人初始位置,多个火位置,人随时间逃跑,火会随时间蔓延,问能否逃出,逃出时最小间。
题解:BFS,先压火,后压人,代表火下一步会烧到的地方,人不能走。

K - 迷宫问题 POJ - 3984
简单BFS

L - Oil Deposits HDU - 1241
题意:简单来说,问有几个联通块,斜着也可以联通。
题解:DFS

结:
简单搜索题目,联通块问题选择深搜。


M - 非常可乐 HDU - 1495
类似H题,BFS,自行模拟出这几种操作后的杯子水量变化即可。

N - Find a way HDU - 2612
题意:给出一个图,两个人Y,M的位置,障碍位置,多个KFC位置,求在其中一个KFC会面两个人最小需要总的时间。
题解:BFS,选择对于每个人,算到每个KFC的最小时间;而不是选择对于每个KFC,算到两个人的最小时间。

结:
简单搜索题目,对于BFS,选择哪个为主体需要考虑,尽量选择广搜次数少的。

你可能感兴趣的:(搜索)