摘要:
Knight Moves 思路和 最少步数 一致。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 7 const int N=305; 8 阅读全文
摘要:
献给阿尔吉侬的花束 思路和 Dungeon Master 一致。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 7 const int N= 阅读全文
摘要:
迷宫问题 思路肯定是可以参考 Dungeon Master 的。 但是在此基础上起点和终点已经确定,另外迷宫的表示也是数值。 我这里打印结果用的是深搜(肯定还有其他方法) 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #i 阅读全文
摘要:
抓住那头牛 这题居然是一维的! 但是笔者窃以为难度并没有比二维的低。 由于N的取值比较大(100000),为避免全数轴确定最短路径(数值), 这里加了一个限制条件 !a[k]||a[y]<a[k] 。 这样就能有效避免多余的求值。 1 #include<iostream> 2 #include<cs 阅读全文
摘要:
走迷宫 思路和 Dungeon Master 一致。 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 using namespace std; 5 6 const int N=45; 7 char a[N][N]; 8 int 阅读全文
摘要:
仙岛求药 思路和 Dungeon Master 一致。 1 #include<iostream> 2 #include<cstdio> 3 #include<cstring> 4 #include<queue> 5 using namespace std; 6 7 const int N=25; 8 阅读全文
摘要:
The Castle 首先,这题大体上肯定是可以参考 细胞 的。 另外, 关于最大房间的求解,只要对每一个队列求一次房间数,取最大值即可! 由于每个房间的“墙”使用了二进制表示(实际上是对应二进制的十进制值), 这里我反其道而行之,将这个十进制值又转化为二进制(实际上也是对应二进制的十进制值(表示方 阅读全文
摘要:
Lake Counting 和 细胞 相比,不能说相似,只能说一模一样!(*╹▽╹*) 1 #include<iostream> 2 #include<cstdio> 3 #include<queue> 4 using namespace std; 5 6 const int N=1005; 7 i 阅读全文
摘要:
Dungeon Master 这个相当于在 最少步数 的基础上增加了一些约束条件。 也就是不需要给所有点确定最短路径,只需要在有意义的点上确定就行。 因为最短路径(数值)和迷宫(字符)使用了两种不同的表示方式,所以最好使用两个数组搭配求解。 1 #include<iostream> 2 #inclu 阅读全文
摘要:
最少步数 这个和 细胞 不同,不需要对一整块进行标记,而是给每一个点确定一个最短路径(仅数值)。 1 #include<iostream> 2 #include<cstring> 3 #include<queue> 4 using namespace std; 5 const int N=100; 阅读全文
摘要:
细胞 做的第一道广搜题,纪念一下!!! 题解: main函数中的循环每次进入bfs()函数,会将“隶属于一个细胞”的所有细胞进行搜索并标记。 由于下一个细胞群的位置无法确定,所以只能老老实实遍历了,但由于有标记,不会重复多余的进入bfs()函数。 相当于main函数中的循环进入几次bfs()函数,就 阅读全文