图的连通性
文章平均质量分 76
yrleep
大学毕业不久,ios游戏自由开发者。
展开
-
poj 1236 Network of Schools 强连通缩点
强连通 缩点 统计入度为0的点即为第一个解 统计出度为0的点,出入度为0的点中的最大值ans即为第二个解 关于第二个问题,给出直观的理解(不是证明) 连通图中,每个点必然有出度和入度,现在用ans条边必然能使图满足每个点都有出度和入度 #include #include #include using namespace std; const int inf=1<<30; co原创 2013-04-14 19:37:27 · 476 阅读 · 0 评论 -
poj 1523 spf 求割点
无向图求割点的模版题。就是对tarjan的运用。 #include #include #include using namespace std; const int maxn=1e3+9,N=1e3; bool e[maxn][maxn]; int dfn[maxn],low[maxn],count,in[maxn]; void tarjan(int t,int from) {原创 2013-05-16 15:14:20 · 751 阅读 · 0 评论 -
poj 3177 Redundant Paths tarjan
在一个无向图中要增加几条边才能使得整个图成为双连通,对tarjan算法进行更改,求得去掉割边都的叶子节点的个数,这个数目要是为1,ans=0.否则,ans=(n+1)/2.#include #include #include using namespace std; const int maxn=5e3+9; struct { int to,next; }e[maxn<<2]; in原创 2013-05-19 21:50:39 · 736 阅读 · 0 评论 -
poj 2553 tarjan
求一个图出度为0的强连通分量。 #include #include #include const int maxn=5500; using namespace std; struct { int to,next; }e[maxn*maxn]; int head[maxn],lon; void edgeini() { memset(head,-1,sizeof(head));原创 2013-05-19 21:57:17 · 668 阅读 · 0 评论 -
poj 3352 双连通分量
至少加几条边成为双连通分量 #include #include #include using namespace std; const int maxn=10000; struct { int to,next; }e[maxn]; int head[maxn],lon; int dfn[maxn],instack[maxn],low[maxn],stack[maxn],s[maxn原创 2013-08-19 00:27:12 · 738 阅读 · 0 评论 -
poj 2375 Cow Ski Area bfs
这个题目用tarjan找联通块,缩点,然后统计出入度为0的点理论上是可行的,但问题是会暴栈。考虑到这个题目的特殊性,可以直接用一次bfs找到数字相同且联通的块,这就是一个联通块,然后缩点,统计出入度即可。 #include #include #include #include using namespace std; const int maxn=1e3+9; int a[maxn][m原创 2013-08-31 16:21:46 · 1079 阅读 · 0 评论 -
poj 1904 King's Quest tarjan求二分图的所有可选最大匹配边
因为是完美匹配,所以每个点都已经匹配了,那么如果要选择一条别的边,增光路的最后必定找到原来所匹配的点,加上匹配的边,那么就是一个环。所以可选边在一个强连通分量里。 #include #include #include using namespace std; const int maxn=4e3+9; int mt[maxn]; int low[maxn],dfn[maxn],inst原创 2013-10-12 23:45:09 · 798 阅读 · 0 评论 -
poj 2186 Popular Cows
强连通缩点 统计出度为0的点 若点多于1 ans=0; 否则 ans=这个强连通的点数 #include #include #include #include using namespace std; const int maxn=10001; int n,m; struct node { int to; struct node *next; }e1[maxn],e2[max原创 2013-04-14 19:37:29 · 501 阅读 · 0 评论