给一个图,问至少加入?多少条有向边能够使图变成强连通的。原图是有环的,缩点建图,在该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