大白书模板,图用前向星存储int pre[MAXN], iscut[MAXN], bccno[MAXN], dfs_clock, bcc_cnt;vector bcc[MAXN];int edge,head[MAXN];struct edgenode{ int to,next;} G[MAXM...
分类:
其他好文 时间:
2015-04-10 21:42:14
阅读次数:
131
无向图的双连通分量
点-双连通图:一个连通的无向图内部没有割点,那么该图是点-双连通图。
注意:孤立点,以及两点一边这两种图都是点-双连通的。因为它们都是内部无割点。
边-双连通图:一个连通的无向图内部没有桥,那么该图就是边-双连通的。
注意:孤立点是边-双连通的,但是两点一边不是边-双连通的。
由上面定义可...
分类:
其他好文 时间:
2015-04-02 18:53:11
阅读次数:
195
Road ConstructionTime Limit:2000MSMemory Limit:65536KTotal Submissions:9426Accepted:4675DescriptionIt's almost summer time, and that means that it's a...
分类:
其他好文 时间:
2015-04-01 21:49:22
阅读次数:
110
我们知道,要把一个非边双连通图构造成一个边双连通图,只需把这个图化简(边双连通分量缩点)成一个树,然后 找出叶子节点个数leaf,(leaf+1)/2就是要新添加的边数。 现在,对与有向图来说,我们需要求加最少的边,使得一个非强连通图变成一个强连通图,最少的边数是多少? 同样的,我们需要...
分类:
其他好文 时间:
2015-03-28 17:00:41
阅读次数:
192
时间戳 dfs_clock :说白了就是记录下访问每个结点的次序。假设我们用 pre 保存,那么如果 pre[u] > pre[v], 那么就可以知道先访问的 v ,后访问的 u 。
现在给定一条边, (u, v), 且 u 的祖先为 fa, 如果有 pre[v]
1 求连通分量:
相互可达的节点称为一个连通分量;
#include
#include
#i...
分类:
其他好文 时间:
2015-03-14 15:24:00
阅读次数:
165
刘汝佳书上都给出了完整的代码
在这里理一下思路:
由题意知肯定存在一个或者多个双连通分量;
如果某一个双连通分量有割顶,那太平井一定不能打在割顶上。而是选择割顶之外的任意一个点;
如果没有割顶,则要在该双连通分量上打两个井
至于打井方案,见代码
#include
#include
#include
#include
#include
usi...
分类:
其他好文 时间:
2015-03-14 15:20:21
阅读次数:
158
亚瑟王要在圆桌上召开骑士会议,为了不引发骑士之间的冲突, 并且能够让会议的议题有令人满意的结果,每次开会前都必须对出席会议的骑士有如下要求: 1、 相互憎恨的两个骑士不能坐在直接相邻的2个位置; 2、 出席会议的骑士数必须是奇数,这是为了让投票表决议题时都能有结果。...
分类:
其他好文 时间:
2015-03-14 12:29:57
阅读次数:
197
题目地址:HDU 2242
先用双连通分量缩点,然后形成一棵树,然后在树上做树形DP,求出每个点的子树和。然后找最小值即可。需要注意一下重边的问题,第一次返回父节点时可以忽略,因为这是反向边,然后之后再返回的时候就不是反向边了。不能忽略了。
代码如下:
#include
#include
#include
#include
#include
#include
#include
...
分类:
其他好文 时间:
2015-03-12 09:50:38
阅读次数:
173
题目地址:POJ 3177
找出各个双连通分量度数为1的点,然后作为叶子节点,那么ans=(叶子结点数+1)/2。需要注意的是有重边。
代码如下:
#include
#include
#include
#include
#include
#include
#include
#include
#include
using namespace std;
#define LL l...
分类:
其他好文 时间:
2015-03-11 19:46:45
阅读次数:
136
给出一个无向连通图,添加若干条边,每添加一条边后输出图中剩余的桥的数量。...
分类:
Web程序 时间:
2015-03-07 18:44:17
阅读次数:
230