连通
文章平均质量分 73
qq172108805
这个作者很懒,什么都没留下…
展开
-
poj1236--强连通--tarjan--补强连通--最优分发
#include #include #include using namespace std; stacks; char map[110][110]; char fang[110]; int low[110]; int ru[110],chu[110],ins[110]; int n,ret,bian; int belong[110]; void tarjan(int x) { int i,j;原创 2012-07-16 20:35:19 · 1336 阅读 · 0 评论 -
hdu 4612 Warm up - 双连通 + 树形DP
/* hdu 4612 Warm up - 双连通 + 树形DP 题意很简单 通过双连通缩图,构成一棵树,然后求最长链,连接首尾即可。剩下的连通块就是所求 */ #pragma comment(linker,"/STACK:102400000,102400000") #include #include const int N=200000+10,M=1000000+10; int原创 2013-07-28 10:27:21 · 990 阅读 · 0 评论 -
zoj1119--双连通--寻找关节点---计算子网数
/* 通过这个过程,可以发现一条规律: 当v是树根,如果它有2个或者更多儿子,那么它是一个关节点。 当v不是树根,当且仅当它有至少一个儿子w, 且从w出发,不能通过w的后代顶点组成的路径和一条回退边到底u 的任意一个祖先顶点,此时v 是一个关节点。 其道理很明显,如果树根包含多个儿子,那么把根节点去掉,整棵树自然被分成多个不相干的部分,图也就断开了。如果v是非根顶点,如果其子树中的节点均没有原创 2012-07-16 20:34:15 · 1055 阅读 · 0 评论 -
hdu 4635 Strongly connected 强连通
/* hdu 4635 Strongly connected 强连通 题意:给一个简单(无重边,无自环:就是自己直接指向自己的边)有向图, 若是强连通的,就输出-1 否则输出可以最多加多少条边还是非强连通的; 加完边的状态就是,有两个强连通块儿(包含的点数分别是n,m),各自内部任意两点之间都有两条不同方向的边, 两个块儿之间只有单方向的边,另一个方向的边是因为保持非强连通牺牲掉的(数量是n*m原创 2013-08-01 20:29:14 · 908 阅读 · 0 评论 -
poj3352--旅游岛修路--双连通--无向图邻接表的容量是边数量的2倍
#include #include int head[1010],low[1010],fang[1010],du[1010]; struct node { int v,next; }e[2001];//这地儿老郁闷了,没有注意到无向图存边需要的是边数量的2倍,之前老是WA int yong,n,r; int min(int a,int b) { if(a<b) return a; ret原创 2012-07-16 20:34:47 · 1748 阅读 · 0 评论 -
hdu1269--求强连通分量个数--tarjan--图的静态邻接表
#include #include #include using namespace std; stacks; int ret; struct node { int v,next; } e[100010]; int ins[10010],fang[10010],head[10010],low[10010]; int n,m,yong; void tarjan(int k) { int j,u;原创 2012-07-16 20:35:52 · 3147 阅读 · 0 评论