bfs
jiangjiashi
这个作者很懒,什么都没留下…
展开
-
(一般难bfs)Nightmare(H1072)
#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 10bool vist[N][N];int map[N][N];int a[4][2]={{原创 2012-05-06 20:00:11 · 628 阅读 · 0 评论 -
Prime Path (p3126)
就是搜索两个四位素数之间的频数。对四位的每一位都逐步地进行广搜就可以了。#include#include#include#include#include#include#include#include#includeusing namespace std;bool p[111111];int ans;bool vist[111111];int原创 2013-02-22 10:57:04 · 1070 阅读 · 0 评论 -
(难) attack_1804
其实这个题还是很多人做出来的。。只是我太渣渣了,各种细节没有安排好。。逻辑思路没有安排好。慢慢找BUG找出来的。#include#include#include#include#include#includeusing namespace std;#define N 100010#define inf 1e15struct原创 2013-03-30 21:01:56 · 674 阅读 · 3 评论 -
BeiJu
题意:有N个杯具,,其初始状态中杯具有的是向下,有的是向上。 对其进行操作,,每次操作就是随意的同时翻转M个杯具, 问至少要多少步能把所有的杯具都翻为向上。思路:就是直接进行广搜,只是把要每一个状态进行标记。这里最多就只有10000状态,所以 速度会很快的。 #include#include#in原创 2013-05-15 21:16:43 · 744 阅读 · 0 评论 -
DFS+BFS
题意:给出起点和终点,两个点都在边上,,且其余边都封好。 给出左优先搜索的距离,,右优先搜索的距离,,最短距离。思路:前一个答案是由左、向、或、后,这四个方向的顺序就一定能找得到终点。 第二个答案类似 最短距离直接广搜就可以(由于自己写的是否已访问过的标记记了,T了两次)#include#include#原创 2013-05-17 14:51:04 · 530 阅读 · 0 评论 -
snake
就是贪吃蛇,,WA得最苦的一次。细节的原因。无力吐槽了做法:蛇的两节相关的关系用一个四进制保存,一共不超过九节,所以其关系用一个整数就可以存下。注意:不要用优先队列。#include#include#include#include#includeusing namespace std;char map[22][22];bool v原创 2013-05-23 17:45:56 · 686 阅读 · 0 评论 -
棋盘(A*)
就是要把棋子依次移出。用A*,,注意struct里的变量不能多,再多就很容易ML了#include#include#include#include#includeusing namespace std;#define size 6int a[4][2]={{1,0},{0,1},{0,-1},{-1,0}};int n,m;char map[11][原创 2013-05-24 22:30:32 · 519 阅读 · 0 评论 -
救小Q(简单传送门)
题意:在一幅图中,L要找到Q,#为陷阱,,有各种小写的一对字母为传送门。 求其能找到Q的最短距离思路:就是简单的广搜,不过要注意:要该点找到传送门后只把该点标记为已经访问, 如果把传送门的另一端也标为巳访问则会WA,因为标记后,会使另外的传送门从这边过来就不行了。#include#include#include#inc原创 2013-05-14 14:16:48 · 961 阅读 · 0 评论 -
超级大逃亡
时隔多年,终于搞定思路:看代码#include#include#includeint n,m,l,r;char map[70][70];char cur[70][70];int X,Y;struct my{ int x,y;};int pre[70][70];my q[10000];long long ans=0;bool b[70][70];原创 2013-10-25 16:31:09 · 681 阅读 · 0 评论 -
pots (P3414)
题意:给空两个容量A,B的杯具, 求使用一些操作后能倒出C容量的水 操作:1,把其中一个倒满水, 2,把其中一个水倒掉 3,把其中一个杯具的水倒向另一个杯具里,如果水满了还没有倒完,则水保留在原来的杯具中思路:简单的BFS, 1,用一个二维矩阵原创 2013-10-23 18:27:07 · 507 阅读 · 0 评论 -
catch the cow (P3278)
一开始就用我习惯的queue的方法进行广搜,结果就后面重复的枝条太多了。后来用状态记录就OK#include#include#include#include#include#include#include#include#includeusing namespace std;struct my{ int num,t;};int ans;int原创 2013-02-21 23:03:39 · 544 阅读 · 0 评论 -
Dungeon Master (P2251)
就是一个简单的三维广搜。一开始还一直TEL,是因为没有标记状态,这个不好。#include#include#include#include#include#include#include#include#includeusing namespace std;int n,m,h;char map[33][33][33];bool vist[33][原创 2013-02-21 16:37:18 · 453 阅读 · 0 评论 -
(简单)maze(CD1480)
就用简单的bfs就行了,#include#include#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;#define N 500int map[N][N];int n,m原创 2012-05-08 19:20:59 · 360 阅读 · 0 评论 -
(杯子倒水问题)Pots(p3414)
这个题搞了好久,到了快凌晨三点钟了,终于出来了。都是自己太不小心。还真的以为别人的代码是0MS,而我的只是TL的命。结果是一个vist[][]里写错了一个,搞得我在输出的时候一直打圈圈了,好辛苦。。有收获,只是有一点不值得。哈哈。小心为好。写得有一点长了,#include#include#include #include#include#include原创 2012-06-07 02:50:52 · 609 阅读 · 0 评论 -
(A*,IDA*,DFS)eight(p1077)
经典的八数码问题,有人说不做此题人生不完整,哈哈。状态总数是9! = 362880 种,不算太多,可以满足广搜和A*对于空间的需求。状态可以每次都动态生成,也可以生成一次存储起来,我用的动态生成,《组合数学》书上有一种生成排列的方法叫做"序数法",我看了一会书,把由排列到序数,和由序数到排列的两个函数写了出来,就是代码中的int order(const char *s, int n) 和v转载 2012-06-07 03:34:47 · 687 阅读 · 0 评论 -
(dfs+bfs+记录)迷宫问题(P3984)
还行吧,,比较简单#include#include#include #include #includeusing namespace std; #define N 6struct my{ int x; int y;}pre[N][N];bool vist[N][N];int map[N][N];int a[4][2]={{-1,0},{0,-原创 2012-05-21 12:46:09 · 621 阅读 · 0 评论 -
(未完成) Bus Pass
这道题没有成功,一反正自己试了一些数据也是对的。就是不正确。我的思路,把车经过 的站点进行最短路搜索(因为这样的点比较少),然后找到各站点到各点的最大值中所有的最小值即可。#include#include#include#include#include#include#include#include#includeusing namespace std;原创 2012-07-17 22:22:25 · 492 阅读 · 0 评论 -
Rescue
这个题看上去比较简单两个注意:1、直接时间加2不行,得标记后入队两次。2、struct加入队列时要注意规范,我就在这里出现未知错误,规范后就行了。#include#include#include#include#include#include#include#include#includeusing namespace std;#define N原创 2012-07-17 17:44:53 · 382 阅读 · 0 评论 -
(简单、大量) Distance on Chessboard (P1657)
这个题是简单单题,但是四各情况都要自己写出,虽然很相似。#include#include#include#include#include#include#include#include#include#include#includeusing namespace std;struct my{ int x; int y; int s; bool原创 2012-07-24 13:00:13 · 365 阅读 · 0 评论 -
Catch that cow (H2717)
一开始就写的广搜,,为怕超时,各种剪枝。然后就wrong了。应该是剪多了,然后去掉各种麻烦的剪枝,只留了基本的,还15MS过了,不错,#include#include#include#include#include#include#includeusing namespace std;int n,aim;struct my{ int num;原创 2013-01-15 13:06:43 · 386 阅读 · 0 评论 -
children of the candy corn (P3083
方法:1,最短路就用简单的广搜就可以了。 2,左优先的步数是由先左,往前,往右,向后的顺序走出来的。 这里不用担心会出现死循环的情况,在这里不会出现的。#include#include#include#include#include#include#include#includeusing n原创 2013-02-21 10:17:41 · 510 阅读 · 0 评论