题意:对于一个有向图,问最大团中有多少点,要求该点集内所有点对间至少有一条路径(u到v或v到u或两条都有)。首先,对于每一个强连通分量,其中的所有点必然能够互相到达,所以先进行缩点,然后对于缩点后的 DAG,dp[i] 表示从 i 强连通分量开始能够到达的最多的点数,那么在缩点时需要记录一下每个强连...
分类:
其他好文 时间:
2015-09-10 22:26:25
阅读次数:
197
给我们一个有向图,有两个问题1、最少要给多少个点发消息,才能使得所有的点都收到消息(消息可以随边传递)2、最少需要多少条边才能使得图变成强连通图对于一个强连通分量,可以当做一个点来考虑,所以我们可以缩点,然后得到DAG图,那么对于第一个问,即是入度为0的点有多少个,因为入度为0的点无法收到消息。对于...
分类:
其他好文 时间:
2015-09-09 16:33:47
阅读次数:
219
有向图中在若两点之间可以互相到达,则称这两点强连通,如果一个点集内的所有点都可以互相到达,那么这个点集就是图的一个强连通分量,而我们需要找出有向图中的所有极大强连通分量,于是就用Tarjan算法进行强连通,并将一个连通块缩成一个点,这样就可以形成了一张有向无环图,对解题会很有帮助。找强连通分量的方法...
分类:
其他好文 时间:
2015-09-09 00:54:12
阅读次数:
313
原题链接:https://icpcarchive.ecs.baylor.edu/index.php?option=com_onlinejudge&Itemid=8&page=show_problem&problem=2288题意:给你一个有向图,问你至少需要添加多少条边,使得整个图强连通。题解:就。...
分类:
其他好文 时间:
2015-09-08 20:10:43
阅读次数:
181
先跑网络流, 然后在残余网络tarjan缩点.考虑一条边(u,v):当且仅当scc[u] != scc[v], (u,v)可能出现在最小割中...然而我并不会证明当且仅当scc[u] = scc[S] && scc[v] == scc[T], (u, v) 必定出现在最小割中. 这个很好脑补, 假如...
分类:
其他好文 时间:
2015-09-05 13:40:17
阅读次数:
183
DescriptionThe N (2 2 #include 3 #include 4 #include 5 #include 6 #include 7 using namespace std; 8 #define N 100006 9 int n,m; 10 int tot; 1...
分类:
其他好文 时间:
2015-09-04 22:21:15
阅读次数:
276
J. Computer NetworkTime Limit: 1 SecMemory Limit: 256 MB题目连接http://codeforces.com/gym/100114DescriptionThe computer network of “Plunder & Flee Inc.” c...
分类:
Web程序 时间:
2015-09-03 20:26:00
阅读次数:
213
题意:求一条边使得加入这条边以后的消除的桥尽量多。在同一个边双连通分量内加边肯定不会消除桥的,求边双连通分量以后缩点,把桥当成边,实际上是要选一条最长的链。缩点以后会形成一颗树,一定不存在环否则和桥的定义矛盾,求树上的最远点对。树上的最远点对用dpT了,实际上两次dfs就行了,第一次随便选一个点df...
分类:
Web程序 时间:
2015-09-03 19:13:54
阅读次数:
207
给出一个有向图,求一个最大的结点集合,任意两个点u,v。u可到达v或v可到达u。一个强连通分量肯定一起选的。所以先找出所有scc,然后缩点以后跑DAG上的dp。注意0,0这组数据#includeusing namespace std;const int maxn = 1005,maxm = 5e5+...
分类:
其他好文 时间:
2015-09-02 00:32:12
阅读次数:
146
用tarjan找强连通分量,在一个强连通分量点已经等价缩点以后形成一个DAG,计算入度为0的点数a,出度为0的b,取其中大的一个。特判强连通分量数为1的情况。看懂tarjan算法以后还是比较简单的#includeusing namespace std;const int maxn = 2e4+5;c...
分类:
其他好文 时间:
2015-09-02 00:03:56
阅读次数:
163