摘要: 题目链接:http://poj.org/problem?id=3635 题目和最短路算法的形式很像,只要对每个状态确定转移的分支即可,其中每次油量只加一,因为后续一定会在队列中被取出来重新加一(如果可以的话) 代码: #include<iostream> #include<cstring> #inc 阅读全文
posted @ 2020-06-20 18:50 WA自动机~ 阅读(195) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/solution/content/8249/ 将两个结点之间能直接相连的边长视为0,不能直接相连的边长视为1,因为需要逆转,所以这个问题就变成了N*M个结点的最短路问题,可以通过双端队列搜索进行优化, 因为在队列中的点具有“两段性”和“单调性” 阅读全文
posted @ 2020-06-20 16:49 WA自动机~ 阅读(309) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/176/ 由于状态数量的限制,我们可以考虑捆绑人与箱子的状态,我们已知每次箱子的移动一定是由人引起的,可以考虑状态是箱子的位置和箱子推动的时候人的方向,用另一个BFS搜索人从当前位置 到达箱子旁边的该方向的位置但 阅读全文
posted @ 2020-06-20 15:19 WA自动机~ 阅读(351) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/175/ 题目给出一个01矩阵,要求对于每个点给出图中一个为1的点到这个位置的曼哈顿距离,要求这个曼哈顿距离最小。 转化成多源搜索,对于每一个1,扔进队列进行扩展,扩展到一个没访问过的点一定是到这个点的最短的曼哈 阅读全文
posted @ 2020-06-20 10:26 WA自动机~ 阅读(193) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=3322 立体的推箱子形式的游戏,可以顺着某一条棱推,其中有些位置只能承受立方体的一半的重量。 这题并不难,理解了状态空间的纬度就很容易实现,其中状态是坐标、躺着的起始位置,躺着的形式。 搜索题目比较考验写代码的能力。 代码: #incl 阅读全文
posted @ 2020-06-20 10:02 WA自动机~ 阅读(190) 评论(0) 推荐(0) 编辑