BFS
龟大仙
这个作者很懒,什么都没留下…
展开
-
ZOJ 3865 Superbot(BFS)
题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3865题意:给你一个n*m的地图,求出从@走到$的最小时间.使用按钮去控制机器人走的方向;四个按钮的初始位置是:左右上下,每隔P秒按钮就会向右移动,变成:下左右上、上下左右、右上下左……思路:为了简化按钮的移动步骤,我们直接用二进制给四个位置标记,1原创 2015-04-18 22:02:13 · 627 阅读 · 0 评论 -
POJ2251 Dungeon Master
题目链接题意:L层,R行,C列,S起点,E终点,‘#’障碍,可以走上下前后左右6个方向,走一步一秒,问至少需要几秒,可能无解简单BFS代码如下:#include#include#include#includeusing namespace std;int l, r, c;int s1, s2, s3, e1, e2, e3;int vis[35][35][35];原创 2015-12-09 22:21:36 · 508 阅读 · 0 评论 -
POJ3278 Catch That Cow(bfs)
题意:FJ有与牛在同一坐标轴上,告之FJ与牛的坐标FJ有三种移动方式, + 1,- 1,* 2,求抓住牛的最短步数(牛不会动)裸的bfs水题,将三种移动方式依次放入队列即可代码如下:#include #include#includeusing namespace std; const int N = 1e5; int n, k, vis[N + 10];struct原创 2016-01-25 21:54:08 · 407 阅读 · 0 评论 -
POJ 3984 迷宫问题(bfs)
题意:定义一个二维数组,它表示一个迷宫,其中的1表示墙壁,0表示可以走的路,只能横着走或竖着走,不能斜着走要求编程序找出从左上角到右下角的最短路线思路:bfs基础题,在结构体内定义一个数组保存路径即可代码如下:#include #include#includeusing namespace std; int map[10][10], vis[10][10];原创 2016-01-25 22:02:44 · 1291 阅读 · 0 评论 -
POJ 3414 Pots(bfs)
题意:两个壶,容量分别为A和B,问最少经过几次操作,其中一个壶的容量为C,输出流程操作:1.装满A或B2.倒空A或B3.A倒向B(要判断B已有的体积),B倒向A(要判断A已有的体积)代码如下:#include #include#include#includeusing namespace std;#define INF 1e7+9typedef long原创 2016-01-25 22:15:39 · 392 阅读 · 0 评论 -
FZU 2150 Fire Game(dfs+bfs)
题目链接题意:同时从两个点点火,火焰每秒会扩散到上下左右四个方向,问是都能把草地全部点燃,若能,请输出最短时间,若不能输出-1思路:先深搜有几个连通块,若>2,怎不可能全部烧完,输出-1若代码如下:#include #include#includeusing namespace std;#define INF 1e7+9typedef long long l原创 2016-01-25 22:21:04 · 394 阅读 · 0 评论 -
UVA 11624 Fire!
题意:J要逃出迷宫,F代表火焰,点着后会向上下左右四个方向蔓延,火蔓延到的地方F都不能走,问F是否可以逃出去思路:可以先广搜一遍标记火药到达每个地方的最短时间,再跑F,F只能在标记的时刻之前走过(白书方法)其实这题就是求J走出迷宫的最短路,只是多了一个火焰的限制条件,那么我们可以把F和J一起放进队列,每秒F经过的地方J就不能再走了即可,J走过的地方也不能再走(*一定要先放F再放J)原创 2016-01-25 22:28:04 · 617 阅读 · 0 评论 -
HDU 2612 Find a way
题目链接题意:求Y和M到达同一个@的最短时间和思路:分别算Y和M到达每一个@的最短时间,然后组合比较,选出总和最小即可代码如下:#include #include#include#includeusing namespace std;#define INF 1e7+9typedef long long ll; const int N = 210; int n, m原创 2016-01-25 22:32:02 · 462 阅读 · 0 评论