摘要:
预处理复杂度\(O(n\ log\ n)\),查询复杂度\(O(log\ n)\)。 主要思想是倍增,通过预处理出夫亲的倍增数组实现快速求LCA 1 的父节点取 0 是为了方便树上差分,1 的深度设置得比 0 大是为了防止在求LCA时跳到0. 挺好理解的。 #include<bits/stdc++. 阅读全文
posted @ 2022-02-24 11:36
cbdsopa
阅读(63)
评论(0)
推荐(0)
摘要:
在用树剖解决问题时发现,每次跳链的时候,就有跳到两点LCA的可能。 所以还是有之前树剖的思想,其实和倍增的LCA很像。 优点:常数小,实现很好理解也很好写。预处理复杂度$O(n)$,查询$O(log\ n)$,附带常数小。 感觉比倍增好写,而且还快。 实现如下:(预处理点这里) inline voi 阅读全文
posted @ 2022-02-24 11:36
cbdsopa
阅读(41)
评论(0)
推荐(0)
摘要:
#include<bits/stdc++.h> using namespace std; #define N 2010 #define M 200010 #define INF 0x3f3f3f3f inline int read() { int s=0,f=1; char ch=getchar() 阅读全文
posted @ 2022-02-24 11:35
cbdsopa
阅读(154)
评论(0)
推荐(0)
摘要:
不是费用流都需要用 SPFA 吗。 众所周知,SPFA 去世了,然后网络流显然有负边。于是我们可以像 Johnson 全源最短路一样,给边加上势能,具体实现看我之前的 博客 啦。 然后对于每一次跑 Dijkstra ,然后得到最短路,把势能要再加上这个最短路,可以证明这样操作一次图上不会再有负边。 阅读全文
posted @ 2022-02-24 11:34
cbdsopa
阅读(72)
评论(0)
推荐(0)
摘要:
最大流 #include<bits/stdc++.h> using namespace std; #define N 210 #define M 5010 #define INF 0x3f3f3f3f int n,m,S,T; vector<int>head,to,nxt,val; void joi 阅读全文
posted @ 2022-02-24 11:33
cbdsopa
阅读(71)
评论(0)
推荐(0)
摘要:
学这个是为了支持在带负权值的图上跑 Dijkstra. 为了这个我们要考虑把负的权值搞正。 那么先把我们先人已经得到的结论摆出来。我们考虑先用 SPFA 对着一个满足三角形不等式的图跑一次最短路,具体就是在原图的基础上建立超级源点。 然后我们把得到的这个东西称为 势能 $h$ ,我们对于原图的每条边 阅读全文
posted @ 2022-02-24 11:32
cbdsopa
阅读(40)
评论(0)
推荐(0)
摘要:
需要注意树上做最短路是$O(n)$,因为只需要一次dfs SPFA #include<bits/stdc++.h> using namespace std; int n,m,ss; bool vis[500010]; int q[1000010],dis[500010]; vector<int>he 阅读全文
posted @ 2022-02-24 11:31
cbdsopa
阅读(31)
评论(0)
推荐(0)
摘要:
用于解决前置性问题,如选A前需要先选择完B和C,或者求A前需要先求B。 具体来说,每次选择入度为0的点,并为与之有连边的点解锁度数。 vector<int>t; queue<int,vector<int> >q; bool topo() { t.clear(); for(int i=1;i<=n;+ 阅读全文
posted @ 2022-02-24 11:30
cbdsopa
阅读(33)
评论(0)
推荐(0)
摘要:
做一次最短路,并且记录最短路径中通过的边数,若边数 \(\ge n\) 则最短路中出现环,即出现负环。最长路正环同理。 #include<bits/stdc++.h> #define ll long long #define db double #define filein(a) freopen(# 阅读全文
posted @ 2022-02-24 11:29
cbdsopa
阅读(76)
评论(0)
推荐(0)
摘要:
#include<bits/stdc++.h> #define ll long long #define db double #define filein(a) freopen(#a".in","r",stdin) #define fileot(a) freopen(#a".out","w",std 阅读全文
posted @ 2022-02-24 11:28
cbdsopa
阅读(32)
评论(0)
推荐(0)

浙公网安备 33010602011771号