摘要: 题目链接: poj1077 Eight 难点在如何标记已遍历的的八数码状态:利用康托展开可将全排列一一映射到自然数。 解决状态标记问题,剩下的就与普通 \(bfs\) 无异了。 初始化从终态开始搜索,遍历八数码所有的状态。随后根据输入的状态直接回溯到终态。 /** * poj1077 Eight * 阅读全文
posted @ 2021-01-23 17:23 Zewbie 阅读(92) 评论(0) 推荐(0)
摘要: 题目链接: hdu4460 ( Friend Chains ) 将每个人当作顶点,朋友关系当作顶点之间权值为 \(1\) 的边,建立无向图。 图上任意两点间最短距离的最大值即为所求,从每个顶点 \(bfs\) 就最大距离即可,时间复杂度 \(O(n^2)\) 。 特别地,若该图不连通,则输出 \(- 阅读全文
posted @ 2021-01-23 12:26 Zewbie 阅读(148) 评论(0) 推荐(0)
摘要: 题目链接: hdu1240 ( Asteroids! ) /** * hdu1240 Asteroids * 三维bfs,不过6个方向而已 */ #include <cstdio> #include <queue> #include <iostream> #include <cstring> #in 阅读全文
posted @ 2021-01-23 11:32 Zewbie 阅读(70) 评论(0) 推荐(0)
摘要: 搜索空间不过 \(1e4\) ,暴力 \(bfs\) 即可得到最少操作。 输出每次操作可能需要在 \(bfs\) 时手动模拟队列,方便找到最优解后回溯输出。 /** * poj3414 Pots * */ #include <cstdio> #include <queue> #include <io 阅读全文
posted @ 2021-01-23 09:01 Zewbie 阅读(48) 评论(0) 推荐(0)