给一个图,问至少加入?多少条有向边能够使图变成强连通的。原图是有环的,缩点建图,在该DAG图上我们能够发现,要使该图变成强连通图必须连成环而加入?最少的边连成环,就是把图上入度为0和出度为0的点连上,那么其它的点就都能够互相到达了所以答案就是max(入度为0的点,出度为0的点)#include #i...
分类:
其他好文 时间:
2014-07-14 20:54:10
阅读次数:
204
题目来源:Light OJ 1429 Assassin`s Creed (II)
题意:最少几个人走完全图 可以重复走 有向图
思路:如果是DAG图并且每个点不能重复走 那么就是裸的最小路径覆盖 现在不是DAG 可能有环 并且每个点可能重复走 对于有环 可以缩点 缩点之后的图是DAG图 另外点可以重复走和POJ 2594一样 先预处理连通性
#include
#include
#incl...
分类:
其他好文 时间:
2014-07-06 00:15:53
阅读次数:
270
给一个图,问至少添加多少条有向边可以使图变成强连通的。
原图是有环的,缩点建图,在该DAG图上我们可以发现,要使该图变成强连通图必须连成环
而添加最少的边连成环,就是把DAG图上入度为0和出度为0的点连上,那么其他的点就都可以互相到达了
所以答案就是max(入度为0的点,出度为0的点)
#include
#include
#include
#include
#include...
分类:
其他好文 时间:
2014-07-02 10:52:24
阅读次数:
208
给定图,求把至少把图拆成几个集合能够使集合内的点没有直接或间接关系。
首先由题意可得图中可能含环,而环里面的点肯定是要拆开的。
缩点建图得DAG图,可以想象一下。。把图从入度为零的点向下展开,位于同一层的点放在一个集合是没有关系的,
那么题目所求的问题就转化成求图中最长路的问题了。
接下来就跟
这题 一模一样了。。
#include
#include
#include...
分类:
其他好文 时间:
2014-07-02 09:09:45
阅读次数:
183
在DAG中DFS中顶点的出栈顺序即逆拓扑序。
def topological_sort( graph ):
is_visit = dict( ( node, False ) for node in graph )
li = []
def dfs( graph, start_node ):
for end_node in...
分类:
编程语言 时间:
2014-05-22 23:12:10
阅读次数:
487
题意:坐飞机从 a 地到 b 地 ,在最多停留s次时 , 最小花费是多少?
在题目给出的地点 , 是按从远到近给出的 , 并且给出的航班中 , 不会有从远地点到近地点的航班。
因此从这可以看出 , 题目给的图是一个DAG图 , 那么我们就能用toposort来找最短路。
注意: 会有重边
解法:
构造一个数组 d[i][j] , 表示从开始点 s 到点 i...
分类:
其他好文 时间:
2014-05-10 08:51:56
阅读次数:
391