上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 30 下一页
摘要: 题目链接:http://poj.org/problem?id=3460 题目给定一个乱序序列,长度为n,其中的数是1-n,操作是将其中一段插入任何一个位置,问最少需要多少次操作能够使得序列有序,超过四次直接输出5ormore 由于每个结点的分支数量达到了560,所以四层直接搜索时间复杂度很高,考虑I 阅读全文
posted @ 2020-06-22 09:17 WA自动机~ 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=1077 使用A*搜索中的估价函数要小于等于真实值才能更快的收敛,本题中已经花费的开销是从start状态到目前状态的花费,也就是dist,可以将字符串映射到一个整数表示开销,如果在hash中没有这个键则表示 这个state并没与进入过队列 阅读全文
posted @ 2020-06-21 15:00 WA自动机~ 阅读(167) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://poj.org/problem?id=2449 dijkstra算法中,一个点第一次从堆中出来的时候一定是最短路,第K次出来的时候一定是第k短路。 求解中可以使用A*设计估价函数使得结果朝着目标更快的收敛,本题设计的估计函数是该点到终点的最短路,因为这个最短路一定是小于目标函 阅读全文
posted @ 2020-06-21 11:34 WA自动机~ 阅读(221) 评论(0) 推荐(0) 编辑
摘要: 题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3085 地图中有两个鬼,两个人M和G,步长不同,鬼有曼哈顿距离计算的领域,问人能否相遇,实际上可以通过双向BFS求解。 注意每次点从队列中取出来的时候进行判断是否合法,实时判断,因为鬼是先进行分裂的,并且 阅读全文
posted @ 2020-06-21 09:46 WA自动机~ 阅读(191) 评论(0) 推荐(0) 编辑
摘要: 题目链接: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自动机~ 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/176/ 由于状态数量的限制,我们可以考虑捆绑人与箱子的状态,我们已知每次箱子的移动一定是由人引起的,可以考虑状态是箱子的位置和箱子推动的时候人的方向,用另一个BFS搜索人从当前位置 到达箱子旁边的该方向的位置但 阅读全文
posted @ 2020-06-20 15:19 WA自动机~ 阅读(322) 评论(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) 编辑
摘要: 题目链接:https://www.acwing.com/problem/content/173/ 要求从n件物品中选出若干件,重量之和不超过w并且最接近w,由于有45件最多,所以O(2^n)时间复杂度过高,可以考虑减半先搜索出结果,用另一半在前一半中二分寻找, 最终拼成结果,时间复杂度约为O(2^n 阅读全文
posted @ 2020-06-19 18:54 WA自动机~ 阅读(196) 评论(0) 推荐(0) 编辑
上一页 1 ··· 7 8 9 10 11 12 13 14 15 ··· 30 下一页