DFS&BFS
EnjoyingAC
bugger,写bug爱好者。
展开
-
ZOJ1649 营救Rescue (BFS)
题目链接http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649题意Angel被抓了,并且被关在监狱里。监狱可以用一个NxM的矩阵来表示。监狱由NxM个方格表示,每个方格可能为墙壁、道路、警卫、她的朋友和她。angel的朋友可以向上、下、左、右四个方向走,走到为道路的方格需要时间1,走到有警卫的方格需要时间2(杀死警卫需要时间原创 2017-12-23 11:51:29 · 297 阅读 · 0 评论 -
51nod 1060 最复杂的数 (素数约数定理、反素数、dfs)
题目题解根据质数的唯一分解定理,可以知道任意一个数n都可以分解成若干个质数的幂的乘积的形式。 n=p1^k1 * p2 ^k2 * …* pm^km.每个分解处理的质数幂pi^ki贡献约数的个数是ki+1个(pi^0 ~ pi^ki). 根据乘法原理,总的约数个数为 (k1+1) * (k2+1) * … * (km+1).那么,同样分解成km个素数的话,pi呈升序的情况...原创 2018-09-12 10:54:29 · 342 阅读 · 0 评论 -
51nod 1109 01组成的N的倍数 (BFS搜索、string)
题目链接https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1109题意给定一个自然数N,找出一个M,使得M > 0且M是N的倍数,并且M的10进制表示只包含0或1。求最小的M。 例如:N = 4,M = 100。题解一个很显然的思路就是BFS。 但是M的值可能会超过long long,所以判断...原创 2018-09-08 10:11:35 · 263 阅读 · 0 评论 -
HDU 6370 Werewolf 并查集+BFS
题意狼人游戏。狼人可能说谎,村民不会说谎。N个人每个人说一句话,“x是狼人”或者“x是村民”。 求一定是村民的人的数量,一定是狼人的人的数量。题解因为狼人可以不说谎,即狼人可以伪装成村民,故不存在一定是村民的人。 然后,如果A说B是村民,B说A是狼人,那么A一定是狼人。同样,如果A说B是村民,B说C是村民,C说A是狼人,那么A一定是狼人。总而言之,一个N条边的环,有N-1条村民...原创 2018-08-09 10:34:49 · 315 阅读 · 0 评论 -
UVA11624 Fire(两次BFS+数组记录)
题意给定一个n*m的矩阵,其中‘J’表示人,‘F’表示火,‘#’表示墙,‘.’表示通道。火每分钟朝四周蔓延一个格子,人每分钟也只能从四周走一个格子,为墙的格子火和人都不能走。求人能否逃出矩阵。解题先从火开始进行bfs,并用d[i][j]表示火到达第i行第j列所需的最短时间。再从人开始bfs,加一个到下一个格子的时间必须小于d[i][j]的限制。一开始TLE了一发,想了想就进行了两次...原创 2018-06-20 17:36:36 · 498 阅读 · 0 评论 -
HDU2612 Find a way (BFS的应用)
题意圣诞节要到了,坤神和瑞瑞这对基佬想一起去召唤师大峡谷开开车。百度地图一下,发现周围的召唤师大峡谷还不少,这对基佬纠结着,该去哪一个。。。坤神:我要去左边的这个(因为离自己比较近 哈哈~)。。瑞瑞:我要去右边的这个(因为离自己比较近 嘿嘿~) ……..这对基佬闹矛盾了,开车有危险了! 为了不让他们去召唤师大峡谷坑人,riot决定让他们去X召唤师大峡谷,保证他俩所走的路程和最短。每走一个点需...原创 2018-06-20 16:22:56 · 280 阅读 · 0 评论 -
HDU1495 非常可乐(BFS的应用)
题意王涵斌配了满满一烧杯的硫酸铜溶液,谢璟涵觉得很漂亮,就请王涵斌分一半给她。 王涵斌手中盛满硫酸铜溶液的烧杯容积为A,谢璟涵拿来了两个空烧杯,容积分别为B和C。现在王涵斌可以进行若干次操作。 每次操作都是将一个烧杯里的溶液倒到另一个烧杯中,但因为一些限制,王涵斌不能倒任意体积的溶液,只有当不能再倒了(即倒出的烧杯变空了或倒入的烧杯装满了)才能停止。 王涵斌想要知道最终能不能将这些溶液平...原创 2018-06-20 09:34:04 · 245 阅读 · 0 评论 -
HUD1241 Oil Deposits (DFS的应用)
题意GeoSurvComp地质调查公司负责探测地下石油储藏。 GeoSurvComp现在在一块矩形区域探测石油,并把这个大区域分成了很多小块。他们通过专业设备,来分析每个小块中是否蕴藏石油。如果这些蕴藏石油的小方格相邻,那么他们被认为是同一油藏的一部分。在这块矩形区域,可能有很多油藏。你的任务是确定有多少不同的油藏。Input 输入可能有多个矩形区域(即可能有多组测试)。每个矩形区域的起...原创 2018-06-19 21:34:13 · 126 阅读 · 0 评论 -
FZU2150 Fire Game (BFS的应用)
题意两个熊孩子在n*m的平地上放火玩,#表示草,两个熊孩子分别选一个#格子点火,火可以向上向下向左向右在有草的格子蔓延,点火的地方时间为0,蔓延至下一格的时间依次加一。求烧完所有的草需要的最少时间。如不能烧完输出-1。解题枚举两个人所选的#格子。O(n^2*m^2)的复杂度。 从所枚举的两个格子开始BFS,BFS过程中计数所遍历的#格子数cnt以及遍历到某个#格子的时刻。BFS完好比...原创 2018-06-19 20:59:41 · 218 阅读 · 0 评论 -
HDU2717 Catch That Cow(BFS || 最短路解法,SPFA版)
题意起点在N,终点在K。每个点u有三条有向边u–>u-1,u–>u+1,u–>u+u.每条边的权值为1.求N到K的最短路。解题一种方法是BFS。以N为根,每个点有三个子节点。因为每条边的权值都是1,所以第一次广度搜索到K的时间就是答案。另一种解法是最短路。求N到K的单源最短路即可。AC代码//93ms 2.9MB#include <cstdio...原创 2018-06-19 10:09:55 · 196 阅读 · 0 评论 -
HDU2102 A计划(BFS)
解题比较坑的就是讨论从本格子向另一层走还是本层左右上下移动。并不是所有从队列出来的格子都能进行上下左右移动的,只有非‘#’格子才能。注意这一点后,就是一个常规的BFS了。AC代码#include <cstdio>#include <iostream>#include <cstring>#include <algorithm>...原创 2018-06-22 17:19:38 · 232 阅读 · 0 评论 -
HDU - 2181 哈密顿绕行世界问题 (DFS并用数组记录路径)
解题这题DFS比BFS好写很多。 共用一个vis数组来标记已走过的城市,ans记录第i个走过的城市。 根据DFS的深度来进行判断是否递归到终点。AC代码//0ms 1.8MB#include <cstdio>#include <algorithm>#include <iostream>#include <cstring>...原创 2018-06-22 15:53:01 · 171 阅读 · 0 评论 -
FZU2285 迷宫寻宝(从一点到另一点的最少时间)
题目链接http://acm.fzu.edu.cn/problem.php?pid=2285题目洪尼玛今天准备去寻宝,在一个n*n (n行, n列)的迷宫中,存在着一个入口、一些墙壁以及一个宝藏。由于迷宫是四连通的,即在迷宫中的一个位置,只能走到与它直接相邻的其他四个位置(上、下、左、右)。现洪尼玛在迷宫的入口处,问他最少需要走几步才能拿到宝藏?若永远无法拿到宝藏,则输出-1。In...原创 2018-06-02 18:37:42 · 840 阅读 · 0 评论 -
迷宫寻路(BFS、Java实现)
题目假设一个探险家被困在了地底的迷宫之中,要从当前位置开始找到一条通往迷宫出口的路径。迷宫可以用一个二维矩阵组成,有的部分是墙,有的部分是路。迷宫之中有的路上还有门,每扇门都在迷宫的某个地方有与之匹配的钥匙,只有先拿到钥匙才能打开门。请设计一个算法,帮助探险家找到脱困的最短路径。如前所述,迷宫是通过一个二维矩阵表示的,每个元素的值的含义如下 0-墙,1-路,2-探险家的起始位置,3-迷宫的出口,...原创 2019-03-07 08:22:15 · 2339 阅读 · 0 评论