强联通分量
Avalon_cc
~~
展开
-
POJ 2186 (Kosaraju)
题意:每头牛都想成为牛群中的红人,现在又N头牛和M个有序对(A,B)。(A,B)表示牛A认为牛B是红人。该关系具有传递性,所以如果A认为B是红人,B认为C是红人,则A认为C是红人。求被其他所有牛认为是红人的牛的总数。思路:假设有两头牛A和B都被其他所有牛认为是红人。那么显然,A被B认为是红人,B也被A认为是红人,即存在一个包含A,B两个顶点的圈,或者说A,B属于同一个强联通分量。反之,如果一头牛被...原创 2018-03-15 19:46:22 · 229 阅读 · 0 评论 -
POJ 3180 (Tarjan)
题意:给n给点,m条边,求连通分量>=2的强联通分量数;思路:直接上模板即可scc_cnt为SCC的计数器,sccno[i]为i所在的SCC编号。#include <iostream> #include <algorithm> #include <cstring> #include <cstdio> #include <vector>...原创 2018-03-15 21:20:17 · 268 阅读 · 0 评论 -
POJ 1236 (Tarjan+缩点)
题意:对于一个DAG,至少要选多少个点才能从这个点到所有点,至少要添加多少条边才能从任意一点到所有点。思路:对于第一问,用Tarjan求出强联通分量,缩点后求出入度为0的点就是答案。对于第二问,在缩点后求出入度为0,初度为0的个数,取最大值就是所要添加边的条数。注意对强联通分量只有一个时的特判。#include <iostream> #include <cstring> #...原创 2018-03-15 22:23:50 · 206 阅读 · 0 评论