![](https://img-blog.csdnimg.cn/direct/145a1f54ff6f4950bf4bf359ddae7fef.jpeg?x-oss-process=image/resize,m_fixed,h_224,w_224)
搜索与图论
文章平均质量分 72
搜索与图论算法题
也就这样吧呜
这个作者很懒,什么都没留下…
展开
-
BFS,DFS的应用场景及DFS的注意点,具体题:165.小猫爬山
排列数字:(如上图所示) 当你枚举第三位后,结果输出“1 2 3”,之后要回头找其他可能情况,先回溯到第二位,初始1在第一位(bool[1]=1),而2已经枚举过了,所以枚举3,所以要在第三位回溯时,把3弃掉(bool[3]=0);因为选择选下了,会对后面的操作有影响(例:迷宫问题,你选择走(i,j)这步,再递归(i,j)四周作为下一步,而当这个系列的dfs走完了,你并没有清除查重数组st中的值,则后续这些点都无法在被遍历到了)。(例如:1,2,3,97,98,99情况。第一种考虑4辆,而第二种3辆)。原创 2024-02-02 21:38:13 · 995 阅读 · 0 评论 -
带SLF和LLL优化的SPFA:342.道路与航线
对即将入队的元素进行操作,与队头元素的dis值进行比较,若大于或此时队列为空,放入队尾;(原理不太清楚,查半天没有,大概就是先遍历小的部分更容易吧,有兄弟能给我解释解释吗?对出队元素进行操作,队列中所有dis数组值 和为sum,个数为num;如果出队元素t的dis[t]*num>sum,则把t从队头换到队尾(就是dis[t]大于现在在队列中dis的平均值)。当初学spfa时,老师口口声声说,时间复杂度最大O(nm),大概率O(m);起点s,到各个点距离计算,spfa一遍即可,最后循环一遍dis数组就行了。原创 2024-02-01 15:55:54 · 314 阅读 · 1 评论 -
dijstra+超级源点:1488.最短距离
而多源/多汇最短路问题的另一个常见做法:单源最短路+超级源点/汇点(差不多意思,一个是起点,一个是终点,用方向体现),例如本题,权值全是正的且n~m(为稀疏图),考虑dijkstra算法堆优化版,时间复杂度为。本题的数据陷阱:本题为无向图,则idx会变为2*M,而我们又设立了超级源点,k原创 2024-02-01 12:11:20 · 519 阅读 · 2 评论