
广搜
文章平均质量分 83
Strokess
懂的越少,想的越多。
展开
-
poj 3278
#include#include#include#includeusing namespace std;int n, k;int step[100010];int vis[100010];queue q;int bfs(int n) { q.push(n); step[n] = 0; vis[n] = 1; int head, next; while(!q.empt转载 2015-10-08 16:06:08 · 312 阅读 · 0 评论 -
蓝桥杯 历届试题 九宫重排 (广搜)
历届试题 九宫重排 时间限制:1.0s 内存限制:256.0MB 问题描述 如下面第一个图的九宫格中,放着 1~8 的数字卡片,还有一个格子空着。与空格子相邻的格子中的卡片可以移动到空格中。经过若干次移动,可以形成第二个图所示的局面。 我们把第一个图的局面记为:12345678. 把第二个图的局面记为:123.46758原创 2016-04-18 21:54:03 · 1359 阅读 · 0 评论 -
HDU 5253 连接的管道 (bfs + 优先队列)
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5253广搜,和普通的优先队列广搜又不太一样,具体看代码吧。#include #include #include #include #include using namespace std;int N, M;struct node { int x, y, cost; friend原创 2016-04-30 20:58:33 · 537 阅读 · 0 评论 -
poj 3126 Prime Path (bfs)
#include#include#include#include#includeusing namespace std;int n;int prime[10010] = {0};int book[10010];int step[10010];int bfs(int sou, int des) { queue q; memset(book, 0, sizeof(book)原创 2015-10-13 10:08:28 · 552 阅读 · 0 评论 -
NYOJ 21 三个水杯 (BFS)
题目链接:http://acm.nyist.net/JudgeOnline/problem.php?pid=21三个水杯时间限制:1000 ms | 内存限制:65535 KB难度:4描述给出三个水杯,大小不一,并且只有最大的水杯的水是装满的,其余两个为空杯子。三个水杯之间相互倒水,并且水杯没有标识,只能根据给出的水杯体积来计算。现在要求你写出一原创 2016-04-27 21:33:38 · 488 阅读 · 0 评论 -
HDU 1195 Open the Lock (BFS 剪枝)
HDU 1195输入T,然后每组数据给两个四位字符串(1 ~9),问从第一个字符串转化为第二个字符串最少需要几步。转化方式有两种,一是每个数字位加一或减一(9+1=1,1-1=9),二是相邻两位可以交换(最头最末两位不相邻)。利用一个数组来剪枝。#include #include #include #include #include using names原创 2016-03-27 20:57:46 · 380 阅读 · 0 评论 -
蓝桥杯 算法提高 学霸的迷宫 (BFS 路径存储)
算法提高 学霸的迷宫 时间限制:1.0s 内存限制:256.0MB 问题描述 学霸抢走了大家的作业,班长为了帮同学们找回作业,决定去找学霸决斗。但学霸为了不要别人打扰,住在一个城堡里,城堡外面是一个二维的格子迷宫,要进城堡必须得先通过迷宫。因为班长还有妹子要陪,磨刀不误砍柴功,他为了节约时间,从线人那里搞到了迷宫的地图,准备提前计算最短的路线。原创 2016-03-15 09:12:52 · 4424 阅读 · 0 评论 -
HDU 1026 Ignatius and the Princess I (bfs + 优先队列 + 路径记录)
HDU 1026通过记录前驱来记录路径,不用担心所记录的路径不是用时最少的路径,因为优先队列每次出队的都是用时最少的元素,所以当不合适的元素出队时,正确的路径早已被标记完了。 另外,(0, 0)点确实是没有怪兽的。#include #include #include #include #include using namespace std;char map[1原创 2016-04-01 19:32:48 · 424 阅读 · 0 评论 -
HDU 1242 Rescue (广搜 + 优先队列)
HDU 1242学会了优先队列的使用,就是要把用时最少的方案放在队列最前面。关于对 b 就是把小的放在队前,即最小堆,感觉好像和sort相反。。参考博客:http://blog.youkuaiyun.com/cambridgeacm/article/details/7725146#include #include #include #include #include原创 2016-03-30 21:28:43 · 535 阅读 · 0 评论 -
poj-3083 Children of the Candy Corn
#include#include#includeusing namespace std;char map[50][50];int dl[4][2] = {{0, -1}, {-1, 0}, {0, 1}, {1, 0}};int dr[4][2] = {{0, 1}, {-1, 0}, {0, -1}, {1, 0}};int dx[4] = {0, 1, 0, -1};int转载 2015-10-04 19:55:53 · 435 阅读 · 0 评论 -
POJ 3278 / hdu 2717 Catch That Cow (广搜)
POJ 3278HDU 2717广搜题,用一个数组标记就可以过,不标记的话会超内存。另外,poj的数据要比hdu强一些,比如0 100,这种数据。不特判的话会RE。不过如果不特判,在poj上用C++提交也可以过,不太清楚为什么,难道C++对于负数的数组访问会优化?期待大神解答。。#include #include #include #include #i原创 2016-03-15 20:52:32 · 554 阅读 · 0 评论 -
poj 1426
#include#include#include#include#includeusing namespace std;int n;queue q;long long bfs(int n) { if(n == 0) return 0; if(n == 1) return 1; q.push(1); long long pre, next; int i; while(转载 2015-10-13 10:06:17 · 408 阅读 · 0 评论 -
qduoj 生化危机
广搜#include #include #include #include #include #define MAXN 10010using namespace std;struct city { int id; int day;};int n, k;vector map[MAXN];queue q;int vis[MAXN];int ans[MAXN];i原创 2015-10-13 11:02:42 · 1570 阅读 · 0 评论 -
HDU 5876 Sparse Graph (求补图上最短路径、bfs、优化)
题目链接:HDU 5876 题意:给一个图,求他的补图上的最短路径。 样例: 1 2 0 1t组数据。第一行给出n, m。n个点、m条边。下面m行给m条无向边。然后给出起点s。 输出按点的顺序输出每个点到起点距离。原点不输出,到不了输出-1。好久没写bfs了…邻队的思路。 可以把原图以set的形式存到一个邻接表里,然后补图就可以通过判断set里的点来较快的得到边。 这样的话广搜每次扩原创 2016-09-14 20:16:06 · 929 阅读 · 0 评论