
Bfs
stdwal
天演在化,功成在学。知海无涯,见花问道。
展开
-
POJ3278-Catch That Cow
典型的宽搜入门题。 注意边界条件。 #include #include #include using namespace std; const int MAX_N = 100000; typedef pair P; queue q; bool vis[MAX_N+1]; int Bfs(int n, int k) { bool find_ans = false; q原创 2016-04-07 11:00:28 · 326 阅读 · 0 评论 -
POJ3669-Meteor Shower
这是一道典型宽搜的题。 题目的注意点有很多: 300*300是流星的陨落范围,不是地图的大小。因此302是绝对的安全区域。 同一位置可能会有许多流星,这是应选择最早的那个进行状态标记。 t的范围是[0,1000],闭区间。所以存在刚开始就死在原点的可能性。(太惨了....) 同一队列中不同元素的时间可能是不同的,不能一概而论。 已访问过的点不必再访问。 #include #in原创 2016-04-02 09:57:23 · 452 阅读 · 0 评论 -
POJ2697-A Board Game
将各个状态转换为字符串然后用map储存起来,用BFS即可。//POJ2697 #include <cstdio> #include <iostream> #include <string> #include <queue> #include <map> #include <algorithm>using namespace std;typedef pair<string, char> P;int d原创 2016-09-01 20:33:18 · 425 阅读 · 0 评论 -
POJ1724-ROADS
给定k元钱,要求满足在k元钱内的最短路。 虽然是最短路问题,但是由于它的限制条件,在设计算法时也无需更新最短路,因此采用Bfs与优先队列结合的算法,通过优先队列不断取出符合条件的“最短路”。#include <cstdio> #include <vector> #include <queue> #include <algorithm>using namespace std;const int ma原创 2016-10-23 20:04:12 · 292 阅读 · 0 评论 -
Ural1837-Isenbaev's Number
有一个巨巨叫Isenbaev,现在给出n个队伍,如果是某人是他的队友,则这个人对应的数值为1,如果是他队友的队友则为2,以此类推。 首先在这n个队伍中,最多会有3*n个人,用map存在这些人的信息,编号并提取出总人数。 按照队伍里的人相互连边建图,bfs即可。 注意Isenbaev不在的情况,这是所有人都是undefined.#include <cstdio> #include <string原创 2016-11-16 17:59:51 · 340 阅读 · 0 评论