随笔分类 -  BFS

摘要:Firetruck回溯即可,不过要注意先判断是否可以到达着火点,如果到不了那就没必要回溯了,可能给的数据比较坑,到不了的数据比较多,不判断的话会超时。还有就是输出的格式和样例给的竟然不一样,真是醉了。#includeusing namespace std;const ... 阅读全文
posted @ 2018-12-11 17:09 ACLJW 阅读(125) 评论(0) 推荐(0)
摘要:The Morning after Halloween直接BFS会超时,题目中提示过墙壁很多,那么可以将所有的空格提取出来做张图,然后记录每个空格周围的邻居,这样就不用每次都判断能不能走了。优化的话可以使用双向BFS,从每次正向(从开始位置搜索)搜索一次,反向(从目标... 阅读全文
posted @ 2018-12-05 22:27 ACLJW 阅读(237) 评论(0) 推荐(0)
摘要:Fill#includeusing namespace std;const int maxn = 200 + 5;int T, a, b, c, d;struct node{ int v[3], dist; bool operator rhs.dist;... 阅读全文
posted @ 2018-12-03 23:33 ACLJW 阅读(162) 评论(0) 推荐(0)
摘要:Patrol Robot这个题还是DFS,不过每个状态除了记录位置之外,还要记录剩余穿越次数,这样一来就变成了三维DFS。对于值为1的点如果剩余穿越次数大于0且该状态未遍历过的话也可以访问。像这种四个方向的话用常量数组比较方便,没必要搞个二重循环,容易出bug。#in... 阅读全文
posted @ 2018-08-10 00:57 ACLJW 阅读(186) 评论(0) 推荐(0)
摘要:Knight MovesBFS即可,字符串数组 size 定义成了 2 导致输入一直错误,应该是无法存入'\0' 引起的,待会儿再深究。#includeusing namespace std;const int maxn = 8;typedef pair P;int ... 阅读全文
posted @ 2018-08-09 23:10 ACLJW 阅读(149) 评论(0) 推荐(0)
摘要:Abbott's Revenge一些细节要特别注意#includeusing namespace std;const int maxn = 10;const char* dirs = "NESW";const char* turns = "FLR";struct No... 阅读全文
posted @ 2018-07-31 23:39 ACLJW 阅读(116) 评论(0) 推荐(0)
摘要:给定一个大小为N*M的迷宫,由通道('.')和墙壁('#')组成,其中通道S表示起点,通道G表示终点,每一步移动可以达到上下左右中不是墙壁的位置。试求出起点到终点的最小步数。(本题假定迷宫是有解的)(N,M#include#includeusing namespace... 阅读全文
posted @ 2018-03-16 17:46 ACLJW 阅读(218) 评论(0) 推荐(0)
摘要:07-图5 Saving James Bond - Hard Version(30 分) This time let us consider the situation in the movie “Live and Let Die” in which Jam... 阅读全文
posted @ 2017-12-18 09:40 ACLJW 阅读(191) 评论(0) 推荐(0)
摘要:06-图3 六度空间(30 分) “六度空间”理论又称作“六度分隔(Six Degrees of Separation)”理论。这个理论可以通俗地阐述为:“你和任何一个陌生人之间所间隔的人不会超过六个,也就是说,最多通过五个人你就能够认识任何一个陌生人。”如图1所示。 图1 六度空间示意图 “六度空 阅读全文
posted @ 2017-12-16 17:54 ACLJW 阅读(191) 评论(0) 推荐(0)