原创建时间:2017 12 30 21:05:19 简单的SPFA最短路模板,适用于图的边权有负数的情况。 算法实现: 我们用数组d记录每个结点的最短路径估计值,而且用邻接表来存储图G。运用动态逼近法:设立一个先进先出的队列用来保存待优化的结点,优化时每次取出队首结点u,并且用u点当前的最短路径估计 ...
分类:
其他好文 时间:
2019-10-26 20:41:22
阅读次数:
111
这是求带负边权但是不能有负环的最短路算法,是中国人发明的一种算法吧也是。 首先我们还是用前向星存图,dis[]存当前的最短路径,然后用队列存储待优化的点。首先将起点入队,其次去遍历他所连接的点,如果可以松弛那么只要当前不在队里就将其入队。每一次去用他的队首去去遍历就可以,当队列为空的时候结束。 代码 ...
分类:
其他好文 时间:
2019-10-24 23:20:08
阅读次数:
64
题面:https://www.luogu.org/problem/P3106 cpp 首先以n为起点两边spfa,之后再判断所有的边是否在最短路上,以警告次数作为边权再次spfa. Code: include include include include include include using ...
分类:
其他好文 时间:
2019-10-21 00:11:00
阅读次数:
111
https://loj.ac/problem/10084 题目描述 给出一张图,求图上的一个环使这条环的平均长度最小。 思路 这道题其实和Word Rings相同,只是已经给出图了,直接在图上跑dfs即可。 代码 ...
分类:
其他好文 时间:
2019-10-20 20:17:12
阅读次数:
105
传送门 好题!考察了对于SPFA的深刻理解。 对于每个怪,我们要么花费魔攻代价,要么花费普攻代价+消灭其儿子的代价。 看似像个一直递归下去的做法,仿佛可以用dp? 但是图中可能会存在环,就会有后效性。 假如我们用一个队列保存当前还需要消灭的怪。 我们每次提出队首,要么魔攻,要么普攻然后又压入一堆新出 ...
分类:
Web程序 时间:
2019-10-18 12:42:36
阅读次数:
117
https://loj.ac/problem/10081 题目描述 一张图,有由T个节点,R条双向边和P条单向边组成,每条边有边权且可能存在负权,求能否从S到达每个节点并且输出最小花费。 思路 首先第一想法,把这张图建出来,在跑一遍spfa即可,然而它显然被卡了,不过似乎可以用双端队列优化水过去。 ...
分类:
其他好文 时间:
2019-10-16 19:59:12
阅读次数:
102
https://loj.ac/problem/10074 题目描述 给出一张n个节点、m条边的加权无向图,求一条从1到n的路径,使第k+1大的边权尽可能小。 思路 因为这个答案显然具有单调性,我们考虑对于这个答案进行二分,接下来再想如何确定这个值是否为所求。对于所有大于mid的边,我们把它的边权设为 ...
分类:
其他好文 时间:
2019-10-15 21:09:25
阅读次数:
95
最大流 #include<bits/stdc++.h> using namespace std; #define inf 0x3f3f3f3f const int N=1e4+10; const int M=1e5+10; struct Edge { int to, next, w; } edge[ ...
分类:
其他好文 时间:
2019-10-13 15:29:52
阅读次数:
94
注意标记一个点后,fail树上的子节点都会被标记 跑spfa,dp也可以 ...
分类:
其他好文 时间:
2019-10-13 01:08:59
阅读次数:
118
Game theory Nim SG function Graph theory SPFA Dijkstra MST (Kruskal) Virtual tree 例: "[SDOI2011]消耗战" Tree plus cycle (contaning multiple edges) Heavy ...
分类:
其他好文 时间:
2019-10-12 22:26:29
阅读次数:
95