Road Construction POJ - 3352 题意:一个无向图(无重边),问至少还要加多少边使得去掉任意一条边后任意两点仍可互达。 无向图的边双连通分量(无重边) 先用一次dfs标记出割边,然后dfs标记出各联通分量 再根据割边,缩点重新建图,生成一颗树 则答案就是(叶子树+1)/2. ...
分类:
其他好文 时间:
2017-08-18 17:07:18
阅读次数:
145
双连通总结 这类问题分为,边-双连通。点-双连通 边双连通 边双连通,求出来后。连接没一个双连通的分量的就是割边,因此能够缩点成一棵树。把问题转化为在树上搞,割边的定义为:去掉这条边后图将不连通 基本这类题都一个解法。求双连通分量,然后缩点成树,进行操作 或者就是直接要求割边,做跟割边相关的操作 模 ...
分类:
其他好文 时间:
2017-08-07 15:18:26
阅读次数:
125
http://poj.org/problem?id=1815 题意: 在现代社会,每个人都有自己的朋友。由于每个人都很忙,他们只通过电话联系。你可以假定A可以和B保持联系,当且仅当:①A知道B的电话号码;②A知道C的电话号码,而C能联系上B。如果A知道B的电话号码,则B也知道A的电话号码。 思路:这 ...
分类:
其他好文 时间:
2017-07-22 10:59:15
阅读次数:
185
一个离散数学的实验:已知一个无向图,求出这个无向图的割边/桥,所有的边割集。 这是初始的定义和头文件 #include <stdio.h> #include <string.h> #include<malloc.h> #define INFINITY 100 #define MAX_VERTEX_N ...
分类:
其他好文 时间:
2017-06-23 15:28:44
阅读次数:
158
题目地址:ZOJ 2588 由于数组开小了而TLE了。。这题就是一个求无向连通图最小割边。仅仅要推断dfn[u]是否<low[v],由于low指的当前所能回到的祖先的最小标号,增加low[v]大于dfn[u]时,说明v无法通过其它边回到u之前的点。也就是说v假设想要回到u的祖先点。必需要经过u点,那 ...
分类:
其他好文 时间:
2017-06-12 11:50:36
阅读次数:
158
最小割的建图模式一般是,先算出总收益,然后再通过网络模型进行割边减去部分权值。 然后我们需要思考什么才能带来收益,什么才能有权值冲突。 s连向选的点,t连向不选的点,那么收益的减少量应该就是将s集和t集分开的割边集。 下面说这道题的建图: 点: 每个人一个点,额外设源汇点。 边: 源向人连这个人能造 ...
分类:
其他好文 时间:
2017-05-20 13:14:27
阅读次数:
169
1 #include 2 #include 3 #include 4 5 using namespace std; 6 7 const int N(100000+15); 8 int n,m,u,v; 9 int head[N],sumedge; 10 struct Edge 11 { 12 int... ...
分类:
其他好文 时间:
2017-05-20 12:27:16
阅读次数:
191
by GeneralLiu 一 开 始 学 tarjan 的 强连通分量 , 割边 , 割点 时 没有 学扎实 经过培训 ,发现了些 需要注意的 小细节 举个荔枝 dfs树 上的 边 学了 tarjan 的 应该有所体会 tarjian 算法 是基于 原图 的 dfs树 上的 下面就介绍一下我从此 ...
分类:
其他好文 时间:
2017-05-08 14:34:52
阅读次数:
188
第一问求最小割。 第二问求割边最小的最小割。 我们直接求出第二问就可以求出第一问了。 对于求割边最小,如果我们可以把每条边都附加一个1的权值,那么求最小割是不是会优先选择1最少的边呢。 但是如果直接把边的权值+1,这样求得的最小割就不是原来的最小割了,那是因为1会对原来的容量产生影响。 如果把每条边 ...
分类:
其他好文 时间:
2017-05-07 14:53:40
阅读次数:
166