题意是告诉你有n个命题,m条递推关系,表示某个命题可以推出另外一个命题。现在问你至少在增加多少个递推关系可以保证所有命题两两互推。命题为点,关系为有向边,题目转化成为至少增加多少条有向边使得整个图强连通。首先对于有向图,求出所有的联通分量,并且将所有的联通分量缩成一个点,最终得出一个无环图。在新图里...
分类:
其他好文 时间:
2014-07-18 15:18:12
阅读次数:
205
给一个图,问至少加入?多少条有向边能够使图变成强连通的。原图是有环的,缩点建图,在该DAG图上我们能够发现,要使该图变成强连通图必须连成环而加入?最少的边连成环,就是把图上入度为0和出度为0的点连上,那么其它的点就都能够互相到达了所以答案就是max(入度为0的点,出度为0的点)#include #i...
分类:
其他好文 时间:
2014-07-14 20:54:10
阅读次数:
204
题目来源:Light OJ 1406 Assassin`s Creed
题意:有向图 派出最少的人经过所有的城市 并且每个人不能走别人走过的地方
思路:最少的的人可以走完全图 明显是最小路径覆盖问题 这里可能有环 所以要缩点 但是看样例又发现 一个强连通分量可能要拆分 n最大才15 所以就状态压缩
将全图分成一个个子状态 每个子状态缩点 求最小路径覆盖 这样就解决了一个强连通分量拆分的问题...
分类:
其他好文 时间:
2014-07-12 20:42:34
阅读次数:
265
题意:给定一个有向图有m条单向边,判断是否任意两点都可达(a能到b或者b能到a或者互相可达),即求
弱联通分量。
算法:
先缩点求强连通分量。然后重新建图,判断新图是否是一条单链,即不能分叉,如果分叉了就会存在不可达的情况。
怎么判断是否是单链呢?
就是每次入度为0的点都只有一个,即每次队列里只有一个点。
( o(╯□╰)o。。。。。好像已...
分类:
移动开发 时间:
2014-07-12 20:16:44
阅读次数:
216
迷宫城堡Time Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 6655Accepted Submission(s): 2973Problem Descri...
分类:
其他好文 时间:
2014-07-12 14:18:30
阅读次数:
184
题意:给定一个有向图,问有多少个点由任意顶点出发都能达到。分析:首先,在一个有向无环图中,能被所有点达到点,出度一定是0。先求出所有的强连通分支,然后把每个强连通分支收缩成一个点,重新建图,这样,这个有向图就变成了一个有向无环图。在这个新的图中,只需知道出度为0的点有几个即可。如果出度为0的点超过1...
分类:
其他好文 时间:
2014-07-12 13:38:59
阅读次数:
244
给一个有向图,问有多少结点是其他所有结点都可以到达的。
等价于,在一个有向无环图上,找出度为0 的结点,如果出度为0的结点只有一个,那么这个就是答案,如果大于1个,则答案是0。
这题有环,所以先缩点。求唯一出度为0的强连通分量。
#include
#include
#include
#include
#include
#define inf 0x3f3f3f3f
using na...
分类:
其他好文 时间:
2014-07-10 19:48:45
阅读次数:
192
#include#include#includeusing namespace std;const int maxn=10010;vectorg[maxn];int Bcnt;int Top;int Index;int low[maxn],dfn[maxn];int belong[maxn],sta...
分类:
其他好文 时间:
2014-07-09 14:01:38
阅读次数:
163
搜索一个图是有序地沿着图的边访问所有定点, 图的搜索算法可以使我们发现很多图的结构信息, 图的搜索技术是图算法邻域的核心。
e...
分类:
其他好文 时间:
2014-07-09 10:30:48
阅读次数:
233
有向图强连通分量的Tarjan算法[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected ...
分类:
其他好文 时间:
2014-07-06 19:10:46
阅读次数:
230