ZOJ-1649 Rescue---BFS+优先队列】的更多相关文章

又是类似骑士拯救公主,不过这个是朋友拯救天使的故事... 不同的是,天使有多个朋友,而骑士一般单枪匹马比较帅~ 求到达天使的最短时间,杀死一个护卫1 units time , 走一个格子 1 unit time .SO,杀死一个护卫到达那个格子 2units time. 第一反应是广搜,就搜咧 = =.. WA了,交hdu上 AC了,hdu数据真弱啊... 想了想,想通了,因为一般广搜的话必须都是1个时间才能搜,才能保证这个BFS树是等距离向外伸展的,而这个不是等距离的,所以需要一些处理. 1.…
题意 求迷宫中从a的位置到r的位置须要的最少时间  经过'.'方格须要1s  经过'x'方格须要两秒  '#'表示墙 因为有1s和2s两种情况  须要在基础迷宫bfs上加些推断 令到达每一个点的时间初始为无穷大  当从一个点到达该点用的时间比他本来的时间小时  更新这个点的时间并将这个点入队  扫描全然图就得到答案咯 #include<cstdio> #include<cstring> #include<queue> using namespace std; const…
Rescue Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 20938    Accepted Submission(s): 7486 Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is d…
Rescue Time Limit: 2 Seconds      Memory Limit: 65536 KB Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison. Angel's friends want…
直接把Angle的位置作为起点,广度优先搜索即可,这题不是步数最少,而是time最少,就把以time作为衡量标准,加入优先队列,队首就是当前time最少的.遇到Angle的朋友就退出.只需15ms AC代码: #include<cstdio> #include<cstring> #include<queue> using namespace std; const int maxn=202; int d[maxn][maxn]; int n,m; char G[maxn]…
题目链接: http://acm.hdu.edu.cn/showproblem.php?pid=1242 题目描述: Problem Description Angel was caught by the MOLIGPY! He was put in prison by Moligpy. The prison is described as a N * M (N, M <= 200) matrix. There are WALLs, ROADs, and GUARDs in the prison…
http://acm.hdu.edu.cn/showproblem.php?pid=1242 题意:     Angel被传说中神秘的邪恶的Moligpy人抓住了!他被关在一个迷宫中.迷宫的长.宽不超过200. 迷宫中有不可以越过的墙以及监狱的看守.  Angel的朋友带了一些救援队来到了迷宫中.他们的任务是:接近Angel.我们假设接近Angel就是到达Angel所在的位置. 假设移动需要1单位时间,杀死一个看守也需要1单位时间.到达一个格子以后,如果该格子有看守,则一定要杀死.交给你的任务是…
思路 : 优先队列 每次都取最小的时间,遇到了终点直接就输出 #include<iostream> #include<queue> #include<cstring> using namespace std; ; int n,m,sa,ea,sr,er; char arr[N][N]; }; struct stu{ int a,b; int time; bool friend operator <(const stu &a,const stu &b…
BFS..第一次使用C++ STL的队列来写广搜. #include<stdio.h> #include<string.h> #include<math.h> #include<queue> #include<algorithm> using namespace std; ; struct Point{ int time, x, y; }; queue<Point> Q; char mapp[maxn][maxn]; int mt[m…
http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=1649 //hnldyhy(303882171) 11:12:46 // zoj 1649 //bfs +优先队列 #include <stdio.h> #include <iostream> #include <queue> using namespace std; struct node { int x; int y; int step; };…