判断强联通图 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 9 #include 10 #include 11 #include 12 #include ...
分类:
其他好文 时间:
2014-11-19 21:48:45
阅读次数:
153
在图论中,匹配是指两两没有公共点的边集。二分图的最大匹配是这样的:给出一个二分图,找到一个边数最大的匹配,即选尽量多的边,使得任意两条选中的边没有公共点。如果所有的点都是匹配点(匹配中的某一条边的端点),则称这个匹配是完美匹配(perfect matching)。下面我们考虑二分图都是联通图,如果是...
分类:
其他好文 时间:
2014-10-12 12:16:17
阅读次数:
200
题目链接:zoj 3811 Untrusted Patrol
题目大意:给定n,m,k,表示有n个仓库,m条通道,k个传感器,现在给定n个传感器的位置和m条通道,现在要最这n个仓库进行巡逻,要求一次进过给定具有传感器的仓库,每个仓库经过的次数不限,单要求至少进过1次。
解题思路:首先判断是否为联通图,不连通的话肯定到不了。其次判断l是否等于k,如果不等于的话,说明至少有一个仓库到不了,...
分类:
其他好文 时间:
2014-09-09 13:21:58
阅读次数:
223
1 /* 2 题意:给定一个连通的无向图G,至少要添加几条边,才能使其变为强连通图(指的是边强联通)。 3 思路:利用tarjan算法找出所有的双联通分量!然后根据low[]值的不同将双联通分量 4 进行缩点,最后图形会变成一棵树!也就是添加至少多少条边使一棵树变成强联通图! ...
分类:
其他好文 时间:
2014-08-13 12:46:16
阅读次数:
368
//1.联通图 2.顶点度数都为偶数 ,则存在欧拉回路。
# include
# include
# include
using namespace std;
int father[1010];
int vis[1010][1010],du[1010];
int find(int x)
{
if(father[x]==x)
return x;
return f...
分类:
其他好文 时间:
2014-08-10 10:25:30
阅读次数:
218
给一个联通图,有的是单向边,有的是双向边,问是否存在欧拉回路。乍一看毫无思路,可以这样来搞,对于每条无向边,我们随便指定一个方向,看看是否能够做到所有点的度数之和为偶数。接下来,对于我们指定的边,假设指定的是U->V,那么我们也同时在网络中设置一条同样的边,使得流量为1,最后如果某点的出入度只差不为...
分类:
其他好文 时间:
2014-07-19 14:07:38
阅读次数:
232
题意:给定一个有向图有m条单向边,判断是否任意两点都可达(a能到b或者b能到a或者互相可达),即求
弱联通分量。
算法:
先缩点求强连通分量。然后重新建图,判断新图是否是一条单链,即不能分叉,如果分叉了就会存在不可达的情况。
怎么判断是否是单链呢?
就是每次入度为0的点都只有一个,即每次队列里只有一个点。
( o(╯□╰)o。。。。。好像已...
分类:
移动开发 时间:
2014-07-12 20:16:44
阅读次数:
216
题目要求一个最大的弱联通图。
首先对于原图进行强连通缩点,得到新图,这个新图呈链状,类似树结构。
对新图进行记忆化dp,求一条权值最长的链,每个点的权值就是当前强连通分量点的个数。
/*
Tarjan算法求有向图的强连通分量set记录了强连通分量
Col记录了强连通分量的个数。
*/
#include
#include
#include
#include
#include
usin...
分类:
其他好文 时间:
2014-06-27 10:12:12
阅读次数:
275