
搜索—BFS
文章平均质量分 81
Ezereal
这个作者很懒,什么都没留下…
展开
-
POJ 3126 Prime Path
给定两个四位素数a b,要求把a变换到b变换的过程要保证 每次变换出来的数都是一个 四位素数,而且当前这步的变换所得的素数 与 前一步得到的素数 只能有一个位不同,而且每步得到的素数都不能重复。 求从a到b最少需要的变换次数。无法变换则输出Impossible解题思路:超级水题,40入口的BFS + 素数判定不过剪枝之后就没有40入口了,入口数远小于40无论是判定素数还是搜索素原创 2015-08-19 16:54:59 · 322 阅读 · 0 评论 -
Codeforces Round #354 (Div. 2) D. Theseus and labyrinth(bfs)
题意:给出一个n*m的地图,英雄从(xt,yt)出发,要到达敌人所在地(xm,ym)。地图每个格子有设定:^>vURDL代表某个方向没门,其他方向都有门,例如U,代表上面没门,其他3个方向各有一个门。-|代表左右有门、上下有门。+代表4个门,*代表没有门。每分钟,英雄可以进行一项操作:A.将所有方块顺时针转90度。B.移动到相邻方块,要求自己方块到它的方向有门,它的方块转载 2016-10-04 16:40:07 · 333 阅读 · 0 评论 -
ZOJ Problem Set - 3820 Building Fire Stations 【树的直径 + 操作 】
题意:给出n个点,n-1条边的一棵树,然后要在两个点上建立两个消防站,让所有点的到消防站最大距离的点的这个距离最小。分析:首先先求这个树的直径,然后在树的直径的中点处把树分成两棵树,然后在把两棵树分别取中点的最大值就是ans值。#include #include #include #include #include #include using转载 2016-09-26 22:02:15 · 347 阅读 · 0 评论 -
UESTC 485 Game(康托展开,bfs打表)
题意:给出两个3*3的矩阵,矩阵变换就是每行每列按照环旋转,问走多少步可以到达第二个矩阵。利用康托展开进行bfs预处理。题目给的一个起始的九宫格,和一个目标的九宫格。 不能直接用目标的九宫格去找起始的九宫格,会超时,应该根据把起始九宫格当作 1 2 3 4 5 6 7 8 9 然后确定目标九宫格是怎么样的,这样就可以直接用之前打的表了。预处理就是处理1 2 3 4 5 6原创 2016-09-04 11:23:32 · 486 阅读 · 0 评论 -
Codeforces Round #346 (Div. 2) F. Polycarp and Hay (并查集+bfs)★
题意给你一个n*m的矩阵,然后给你一个k这个矩阵里面的数,只能减小,不能增加。然后你要是的矩阵最后只剩下一个连通块,且连通块里面有一个位置的数没有改变。连通块的权值和恰好等于k让你输出一个解。题解:把所有数,从大到小排序,然后用并查集去维护只要当前这个连通块的大小大于等于k/a[i][j]就好了然后输出的时候用bfs去输出,去维护原创 2016-09-15 12:37:01 · 812 阅读 · 0 评论 -
HDU 3247 Resource Archiver(AC自动机+BFS+状态DP)
题目:给出n个资源,m个病毒,将资源串拼接成一个串,必须包含所有的资源串,可以重叠,但是不能包含病毒问最小的长度为多少将所有的资源串和病毒串都放在Trie树里建立起来,当然作上相应的标记。然后建立fail指针之后从资源串的结尾出发,BFS,记录能到达其它资源串结尾的步数。得到所有资源串结尾状态的距离邻接阵。之后是状态压缩DPdp[i][j]表示资源串的状态为i时,最后一原创 2016-08-08 16:27:13 · 359 阅读 · 0 评论 -
POJ 2251 Dungeon Master
一个立体空间, 输入三个数,L,R,C,代表有L个平面,R行,C列,.代表可以走,#代表不能走,S代表开始点,E代表结束点,问从S开始走,对每个位置,有六个走法,即空间的六个方向的走法(上下东南西北),一分钟可以走一个点,问从S走到E点,最少可以经过多少分钟,若不能到达,则输出Trapped!一个三维BFS,一开始直接利用vis数组记录到达当前点的最短时间,不过MLE了,后来改成vis记录是否原创 2016-02-04 14:00:06 · 338 阅读 · 0 评论 -
UVa 11624 - Fire!
题目:一个平面迷宫中有一个人,迷宫中有些点起火了,火和人每个单位时间只能向相邻的格子移动, 其中有一些空间被墙壁占据,问这个人在不背或烧到的情况下,离开迷宫的最快时间。题解:现对火进行bfs,预处理出火燃烧的状态,然后对人进行bfs,判断当前能否走到该点上,即该点是否有火在燃烧。预处理火的时候,直接全部添加进队列中,一开始一个个bfs的时候T了。。。。原创 2016-02-05 12:45:25 · 471 阅读 · 0 评论 -
fzu 2150 Fire Game
题意:给出一个m*n的图,‘#’表示草坪,‘ . ’表示空地,然后可以选择在任意的两个草坪格子点火,火每 1 s会向周围四个格子扩散,问选择那两个点使得燃烧所有的草坪花费时间最小?分析:这个题目如果考虑技巧的话有点难度,但是鉴于数据范围比较小,我们可以暴力枚举任意的草坪所在的点,然后两个点压进队列里面BFS,去一个满足条件的最小值即可。一眼就瞟到了题解。。。。#incl原创 2016-02-05 11:18:13 · 413 阅读 · 0 评论 -
Hdu 1195 Open the Lock
题目大意:有一个紧急开启密码锁的任务。密码由四位数字组成;每个数字从1到9;每次,可以对某一个数字进行加1或者减1;当从1加到9时,由9再加1会变为1;当从9减到1时,由1再减1会变为9;也可以交换两个相邻的数字,每次操作作为一个step。你的任务就是用最少的步骤解锁!直接BFS即可#include #include #include #include #inclu原创 2015-12-12 15:11:18 · 494 阅读 · 0 评论 -
hdu 1983 Kaitou Kid - The Phantom Thief (2)
题意:破解字迷之后,你得知Kid将会在展览开始后T分钟内盗取至少一颗宝石,并离开展馆。整个展馆呈矩形分布,划分为N*M个区域,有唯一的入口和出口(不能从出口进入,同样不能从入口出去)。由某个区域可直接移动至相邻四个区域中的一个,且最快需要一分钟。假设Kid进入放有宝石的区域即可盗取宝石,无需耗时。问至少要封锁几个区域(可以封锁放有宝石的区域,但不能封锁入口和出口)才能保证Kid无法完成任务原创 2015-10-15 21:28:20 · 610 阅读 · 0 评论 -
hdu 1242 Resuce
题意:X代表卫兵,a代表终点,r代表起始点,.代表路,#代表墙路花费一秒,x花费两秒问到达终点的最少时间思路:BFS+优先队列的果题#include #include #include #include #include #include #include #include #include #include using namespace st原创 2015-10-14 19:32:59 · 332 阅读 · 0 评论 -
hdu 1180 诡异的楼梯
题意:Hogwarts正式开学以后,Harry发现在Hogwarts里,某些楼梯并不是静止不动的,相反,他们每隔一分钟就变动一次方向. 比如下面的例子里,一开始楼梯在竖直方向,一分钟以后它移动到了水平方向,再过一分钟它又回到了竖直方向.Harry发现对他来说很难找到能使得他最快到达目的地的路线,这时Ron(Harry最好的朋友)告诉Harry正好有一个魔法道具可以帮助他寻找这样的路线,而那个魔原创 2015-10-14 11:30:32 · 403 阅读 · 0 评论 -
ZOJ 1136 Multiply
题目: 给一个数N,N>= 0, N 解析:第一,分析可知,由于它是加的位数,而不是数字,所以,对于数一定要有处理,不可能盲目的追加位数!第二,这m个数,根据题意,可以组成的数字是无穷多的所以,这里需要一个解决的办法,那就是取余。事实上,任何一个数对n取余,一共只能有n个结果(如果算0的话)。而且有这样的一个式子,如果x%n == y%n, 那么x%n * 10 +原创 2015-10-13 21:10:18 · 427 阅读 · 0 评论 -
Codeforces Round #355 (Div. 2) D. Vanya and Treasure (两种方法结合)
1.宽搜+优先队列,队列中刚开始存着以i为值得所有点的坐标,搜出所有以i+1为值得所有坐标和最短距离。2.当知道所有以i(x2, y2)为值得所有点的距离时,用循环求出以i+1(x1, y1)为值得所有点的距离.dis[x1][y1] = min(dis[x1][y1], dis[x2][y2]+abs(x1-x2)+abs(y1-y2));单用第一种方法和第二种方法都超时。这里要把两种方原创 2016-10-05 10:48:54 · 268 阅读 · 0 评论