Tarjan
lemonoil
竞赛党一枚
展开
-
BZOJ1123 BLO [Tarjan][点双连通分量]
就是点双连通分量的裸题,我们记录一个siz,如果某个点可以搜到low比它的deep值大的点的话,显然是产生了一个分割后的连通块。#include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<cmath> #include<map> #include<set> #原创 2017-09-20 08:14:56 · 442 阅读 · 0 评论 -
BZOJ1051 受欢迎的牛 [Tarjan]
忘了是单向边,思考自己怎么会错了10分钟。。。 本题就是tarjan完了后记录每个scc的到达次数,若为scc-1则满足条件。 所以说根本就不需要缩点怎么麻烦的操作,许多Tarjan缩点的题都是这样,不需要真正的缩点。 记住了。。。#include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using na原创 2017-09-20 09:15:31 · 313 阅读 · 0 评论 -
BZOJ2140 稳定婚姻 [Tarjan]
经典题目,注意字符串长度要离散化,否则就会有O(L2)O(L^2)的复杂度加成。。。 用map就行了,然后男连女,求强连通判断就行了。 然后就是Tarjan裸题。#include<map> #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; const int原创 2017-09-20 09:58:51 · 426 阅读 · 0 评论 -
BZOJ1718 分离的路径 [边双联通][模板]
就是边双联通分量的模板题,注意一下++的位置,tot的初始值……,至于那个(leaf+1)/2,感性理解一下就好了。 若要使得任意一棵树,在增加若干条边后,变成一个双连通图,那么至少增加的边数 =( 这棵树总度数为1的结点数 + 1 )/ 2。 1718: [Usaco2006 Jan] Redundant Paths 分离的路径Time Limit: 5 Sec Memory Limit:原创 2017-10-12 20:43:00 · 372 阅读 · 0 评论