搜索
文章平均质量分 80
搜索学习
策z
这个作者很懒,什么都没留下…
展开
-
搜索——A*算法(BFS)
A*算法,首先求出当前状态到终点的估计距离(一定比真实距离小或者相等),可以逆向思维,即终点到当前距离的最小值。用当前真实距离和估计距离排序(priority_queue),取最小的点来继续扩展。和bfs差不多,就是找点进行扩展。A*算法就是用当前距离加估计距离排序的,所以dist和估计距离f(s)都不能缺少。利用最小点扩展swap函数的用法。原创 2023-09-01 17:58:19 · 49 阅读 · 1 评论 -
搜索——双端队列广搜&&双向广搜(BFS)
双向搜索的,适用于某种情况原创 2023-08-30 21:36:21 · 90 阅读 · 1 评论 -
搜索——DFS之连通性模型
其实和bfs差不多,只是扩展的顺序不一样。原创 2023-09-01 19:06:41 · 54 阅读 · 1 评论 -
搜索——迭代加深&&双向DFS&&IDA*(DFS)
迭代加深的思路非常的重要。一步一步扩大搜索的深度进行搜索。本题是一个动态规划的01背包问题,但是n*m会超过时间复杂度。如果用不优化的dfs,最大时间复杂度是2的46次方,也会超时所以我们想到用双向dfs减少时间复杂度(2的23次方),先搜索前一半的物品,将每种选取方式得到的总量(价值)记录下来,方便后面匹配二分。然后搜索后一半,找到不超过m的最大总重量。双向dfs,先搜索前面一半,记录起来,然后搜索后一半,搜索的和前面一半记录的进行判断。搜索顺序方向很重要。原创 2023-09-03 15:52:59 · 109 阅读 · 1 评论 -
搜索——DFS之剪枝与优化
这种题型很常见,放到已有组或者新开一个组运用了优化搜索顺序,可行性,最优化剪枝初始化ones,map,状态数组row,col,cell根据字符串,完成初始状态设置,draw(i,j,t,true)进行搜索,选择分支数量最少的位置,即能填数最少的点。然后依次试验可不可行,注意恢复现场(get,lowbit)每个位置能填的数,取决与横列和小宫格的状态&,是1即能填这个位置的数。初始化不填每个位置均为1。状态压缩dfs的优化搜索顺序非常的重要。原创 2023-09-02 21:11:57 · 49 阅读 · 0 评论 -
搜索——flood fill(BFS)
bfs的一种应用flood fill,把联通块部分找出来原创 2023-08-27 17:53:40 · 70 阅读 · 0 评论 -
搜索——DFS之搜索顺序
flag要放for循环里面,不然就只能用一次,那个是判断a[u]是否能放在第i组里面。最后一个开头的字母,不要用char来读入,不然会读回车的。用string,yyds。每次从前往后扫描,将互质的数都装进一个组。每次扫描结束后都重新开一个组。为每个数找到适合的组放进去,或者重新开一个放进去。原创 2023-09-01 20:46:07 · 56 阅读 · 1 评论 -
搜索——最短路模型&&多源BFS&&最小步数模型(BFS)
bfs的最短路性质原创 2023-08-28 16:34:39 · 99 阅读 · 1 评论