双端队列广搜 1. 算法分析 双端队列广搜算法只适用于边权只有0和1的情况,本质上是对dijkstra堆优化版本的再次优化。由于dijkstra堆优化版本每次要把最小值从队头拿出,然后更新其他值后插入队列。而当边权只有0和1时,当处理的边权为0,那么更新完仍然为最小值,直接放入队头;为1则插入队尾。 ...
分类:
其他好文 时间:
2020-07-27 13:40:39
阅读次数:
68
dijkstra+堆优化: P4779 【模板】单源最 code: #include<bits/stdc++.h> using namespace std; const int N=3e5; int n,m; int s,x,y,w; int head[N]; int dis[N]; bool vi ...
分类:
其他好文 时间:
2020-07-03 12:11:33
阅读次数:
57
#include<iostream> #include<cstdio> #include<queue> using namespace std; int dis[200001],head[200001]; int n,m,a,b,c,s,cnt; bool vis[200001]; struct e ...
分类:
其他好文 时间:
2020-06-23 21:35:40
阅读次数:
59
题目 https://www.luogu.com.cn/problem/P1144 题目分析 注意相同距离的最短路径条数的判断!(使用数组!) 代码 Dijkstra+堆优化 #include<iostream> #include<cstdio> #include<algorithm> #inclu ...
分类:
其他好文 时间:
2020-05-16 20:42:07
阅读次数:
92
题目链接: "https://www.luogu.org/problem/P1144" 其实这道题目是最短路的变形题,因为数据范围 $N \le 10^6, M \le 2 \times 10^6$ ,所以直接用Dijkstra算法是不行的,可以使用 Dijkstra+堆优化 或者 SPFA算法来实 ...
分类:
其他好文 时间:
2019-11-04 21:25:55
阅读次数:
70
本人水平有限,题解不到为处,请多多谅解 本蒟蒻谢谢大家观看 题目:传送门 最短路板子题:迪杰斯特拉+堆优化 注意:因为我建的是大根堆,所以要将距离取负,再存入大根堆堆中,这样队首就是最小值 直接套模板即可 code: ...
分类:
其他好文 时间:
2019-10-30 18:37:48
阅读次数:
86
复杂度O(mlogn) 输入起点s,可以得到从起点到各点的最短路距离数组dis[i] 过程: 1.初始化:清空标记数组,初始化距离数组设为inf,起点距离设为0,开优先队列,搜索起点 2.搜索:取出队首并pop,如果队首节点u的当前最短路比u的原先的最短路大则跳过,否则遍历u的邻接点如果v没有被访问 ...
分类:
其他好文 时间:
2019-08-25 13:51:44
阅读次数:
77
P.S:关于初赛二,在高铁上打代码真是奇怪的体验!!! 一开场把所有的题目看了一遍,这题面风格,感觉凉凉。还好,往下做时,题目不是太坑。 1002 floyd转dijkstra+堆优化,感觉是套路题了 但群里有人说,数据不严谨,很多水方法都过了。 1003 应该是本人生涯中mobius第一题,庆祝一 ...
分类:
其他好文 时间:
2019-08-24 18:58:51
阅读次数:
123
https://nanti.jisuanke.com/t/A1108 way1: 应该很多同学的做法都是对于每次y,每次x,dijkstra+堆优化 n^2 * nlogn 其实log(300)很小。。。 way2: 题解方法真心优秀!!! cdq分治 有助于理解floyd:每次加入一个可以使用的点 ...
分类:
其他好文 时间:
2019-07-07 14:25:51
阅读次数:
81
http://acm.hdu.edu.cn/showproblem.php?pid=2544 ...
分类:
其他好文 时间:
2019-05-14 19:30:10
阅读次数:
261