摘要:
直接给他缩点然后求新的图的完整版: C2[u]表示缩点后的u点这个环上的点实际上是哪些 G3[u]表示缩点后的u点的出边 还是一样,要记得先处理入链。(可以让这个图好看一点但是没啥鸟用)入链可能会有一些特别的性质,当然假如入链没有特别性质也可以直接缩点。 不对其实直接缩点就可以了,入链还是新图的入链 阅读全文
摘要:
Kosaraju算法 O(n+m) https://www.luogu.org/problem/P1262 首先考虑假如一个间谍没办法被揭发不能被贿赂,也就是他不是可行的入口点也没有别人指向他,那么无解。 否则可能要若干个入度为0的点,这些点必须被贿赂,且这些点能到达的点不需要再贿赂。 否则一定存在 阅读全文
摘要:
Kruskal算法要对边排序,然后打个并查集维护,但是实际上Prim有他好玩的地方,就把Dijkstra的到点的距离从dis[v]:dis[u]+w改成边dis[v]:w。 那肯定是Prim好写一点。Prim感觉复杂度是O((n+m)logn),Kruskal是O(n+mlogm)。 cpp inc 阅读全文
摘要:
https://www.luogu.org/problem/P1346 使用最短路之前居然忘记清空了。 include using namespace std; typedef long long ll; const int MAXN = 1005; int n, s, t; int dis[MAX 阅读全文
摘要:
```cpp void Floyd(){ for(int k = 1; k using namespace std; typedef long long ll; const int MAXN = 205; int n, m, t[MAXN]; int dis[MAXN][MAXN]; const i 阅读全文
摘要:
https://www.luogu.org/problem/P1522 好坑啊,居然还有直径不通过新边的数据,还好不是很多。 注意一定要等Floyd跑完之后再去找连通块的直径,不然一定是INF。 cpp include include include include using namespace 阅读全文
摘要:
https://www.luogu.org/problem/P1462 感觉,要二分最大收费权的城市,把小于等于它的全部插进去,Dijkstra一下求出最小的血量。这样感觉太暴力了。 考虑只有10000个城市,sort一下,每条无向边都由排名靠后的城市插入。按收费顺序插入城市,直到并查集中1和n连通 阅读全文
摘要:
好像原题是这个?https://www.cnblogs.com/kanchuang/p/11120052.html 这个有解释:https://blog.csdn.net/wddwjlss/article/details/82081754 原题是这个:https://www.luogu.org/pr 阅读全文
摘要:
https://scut.online/p/482 没听说过这个东西。 洛谷也有这个,所以还是要去接触一些奇奇怪怪的知识才行。 https://www.luogu.org/problem/P2290 画了一个表。 1个点: F[1]=1 2个点: F[1]=1 F[2]=1 3个点: F[1]=2/ 阅读全文