
搜索
文章平均质量分 64
bookybooky
http://blog.163.com/happyliyifan126/
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
POJ 1562/ ZOJ 1709: Oil Deposits(我的深搜第一题,其实也可用广搜)
大致题意:输入第一行是m,n两个整数,表示接下来给出油田的行列数。接下来给出的行列的字符中,*表示空,@表示油田,横竖以及斜行相连通的油田是属于同一块。 求(输出)共有多少块油田。思路分析:深搜。设一个变量ans为找到的油田的块数,初始化为0。从第一块plot开始搜索,每搜索一块地将其变为‘*’,这样下一次就不会再查这块plot了。因为搜的每个deposit需要把它里面的所有‘@’都查一遍,所以原创 2015-01-10 21:42:40 · 612 阅读 · 0 评论 -
POJ 3278: Catch the Cow(我的第一道广搜...)
大致题意:farmer John要去抓逃跑的牛,牛懒得跑了,停在位置k(这是个整数),FJ处在位置n(也是个整数)处,他可以通过三种方法变换位置:1)n+1,2)n-1,3)n*2,问最少需要几步可以达到k。思路分析:(详见注释)广搜。 定义数组s[N],v[N]分别记 到i位置的最少步数s[i],和是否访问过这个位置的标记v[i]. 写一个广搜的函数,把每次的位置入队。当队列不为空时,更新队头原创 2015-01-10 21:42:12 · 648 阅读 · 0 评论 -
POJ 1465/ ZOJ 1136 : Multiple - BFS,余数判重
首先,为什么宽搜能得到最优解:去掉首位为0的情况,所以每次去搜索的数字按照从小到大的顺序,所以能得到最优解,所以可以用宽搜做这里的宽搜,好在 用余数判重 剪枝为什么可以用余数判重?——http://blog.youkuaiyun.com/oceanlight/article/details/7871108 A=a*N +e 即A%N =e B= b*N+e即B%N=e 当A B mod N的余数相同时,如果原创 2015-01-10 21:45:18 · 610 阅读 · 0 评论 -
ZOJ 2913 : Bus Pass - BFS
典型BFS题目基本思路:从每条线路上每个地区z出发,进行BFS遍历;对每个地区j,若j是最终求得的中心地区,则要保证从它出发能到达每条线路上每个地区,且选择的星形阈值尽可能小,故 统计每条线路上每个地区z到j最短距离中的最大值,这个最大值记录在res[j]中;最后,求得的最小阈值就是每个地区j的res[j]的最小值,中心地区就是取得最小值的地区j。#include#include#include#原创 2015-01-10 21:45:13 · 529 阅读 · 0 评论 -
ZOJ 1649 : Rescue - BFS
和http://blog.youkuaiyun.com/zxy_snow/article/details/6176139 博主的经历一样啊……交hdu1242就ac了,但是zju的1649就wa……hdu果然数据弱啊~于是在以上博客上看到原因。我还是太菜,自己无法发现漏洞!以下出自文章开头的博客:因为一般广搜的话必须都是1个时间才能搜,才能保证这个BFS树是等距离向外伸展的,而这个不是等距离的,所以需要一些处原创 2015-01-10 21:45:08 · 598 阅读 · 0 评论 -
带分数 - 搜索,next_permutaion妙用
蓝桥杯历届试题练习搜索题,用上全排列next_permutation就不必写很烦很烦的搜索模拟了另外,next_permutation(p,p+l);的返回值是bool型,常用在do{}while(next_permutation(p,p+l));这样的环境下,应该是当其值为0时,全排列一遍生成完毕。它的排列顺序——例如,对“abc”而言,输出为:abcacbbacbcacabcba#includ原创 2015-01-10 21:46:38 · 863 阅读 · 0 评论 -
POJ 2818 : Making Change - dfs
(寒假马拉松第一场 P题)题意:商店有面值为25分、10分、5分、1分的硬币,给出各硬币的数量和要找给顾客的钱数,问怎么使找给顾客的总的硬币数最少。分析:DFS,最暴力的方法是枚举所有的情况;——POJ 此题数据较弱,暴搜即可AC再加上优化:已经满足钱数 或 已经超过钱数,则不再搜索,——当数据量大时则须优化,以免TLE。#include#includeusing namespace std;in原创 2015-01-10 21:46:04 · 626 阅读 · 0 评论 -
POJ 2192 / ZOJ 2401 : Zipper - DP
大致题意: 给定三个字符串A、B、C;判断C能否由AB中的字符组成,同时这个组合后的字符顺序必须是A,B中原来的顺序,不能逆序。也就是C是否能由A、B穿插组成。 例如 A:mnl,B:xyz;如果C为mnxylz,就符合题意;如果C为mxnzly,就不符合题意,原因是z与y顺序不是B中顺序。 输入: 第一行n,表示数据组数 每组数据一行,三个字符串,中间用空格原创 2015-03-05 22:17:20 · 664 阅读 · 0 评论