//给一个连通图,问最少需要添加多少条边才能使得
//任意两个点都有两条不同的路走到
//对于一个强连通分量的所有任意两点都能有两点可以到达
//先用tarjan缩点,缩点以后就是一棵树,对于这个树考虑有几个
//叶子节点 ans = (leaf+1)/2
#include
#include
#include
using namespace st...
分类:
其他好文 时间:
2015-08-10 13:37:50
阅读次数:
94
//给一个n*m的地图,坦克从(0 , 0)开始走
//#表示墙不能走,*表示传送门可以传送到指定地方,可以选择也可以选择不传送
//数字表示该格的矿石数,
//坦克从(0,0)开始走,只能往右和往下走,
//问最多能得到多少矿石
//直接建图,但由于有传送门,需要缩点
//然后用dfs直接搜一条权值最大的路
#include
#include
#include<i...
分类:
其他好文 时间:
2015-08-10 10:41:53
阅读次数:
181
主题链接题意:给定一张有向图,问最少选择几个点能遍历全图。以及最少加入几条边使得有向图成为一个强连通图。思路:对于有向图而言,首先求出有几个强连通分量,之后将每一个强连通分量缩点,形成DAG。本题开头第一句就说图是连通的了。之后想要遍历整张图的话。仅仅要找出入度为0的点有几个,而加入边的数量就取决于...
分类:
Web程序 时间:
2015-08-09 22:11:32
阅读次数:
126
//给一个有向图,每个点都有权值(可能有负权),从任意起点遍历一遍这个图,
//走每一点都可以选择得到和不得到这个权值,问最多能得到多少权值
//先用tarjan进行缩点,得到一个森林,从这个森林的每棵树的根节点开始
//dfs搜一遍得到最大的一条路
#include
#include
#include
#include
usin...
分类:
其他好文 时间:
2015-08-09 17:11:33
阅读次数:
88
//n个奶牛,
//A B 表示A认为B出名,而且其有传递性
//如A认为B出名,B认为C出名,那么A认为C出名
//问有多少头奶牛所有的奶牛都认为其出名
//先对这个图缩点,记录每一个缩点的个数,然后找出度为0有且只有一个点
//如果是,那么那个点缩了几个点就是答案
#include
#include
#include
#include<vec...
分类:
其他好文 时间:
2015-08-09 14:13:05
阅读次数:
118
题目大意:给定一个无向图,要求你把所有的无向边变成有向边,并且添加最少的有向边,使得新的有向图强连通解题思路:这题和POJ - 3352 Road Construction
类似,只不过这题给的不一定是连通图,有可能缩点后出现孤立的点,但大体的思路是一样的
前面的就不详说了,可以看戳这里里面已经写了,这里讲一下怎么处理孤立的点
如果有n个点,要求在这n个点间添加有向边,使得这n个点变成强连通,...
分类:
其他好文 时间:
2015-08-09 09:32:27
阅读次数:
172
//给一个连通无向图,加上一条边需要删除一条边,使得这个图不连通
//删除边需要花费钱,问最少需要准备多少钱使得不论加什么边最终都可以最终删除一条边使得原图不连通
//所需要删的边一定是桥,所以先进行缩点使得其变为一棵树
//在一棵树上加一条边后使得其有一个环,删除这个环的边后其依然连通
//最坏的情况权值最小的边在这个环中,而且其必然是连接两个叶子节点,这样使得环覆盖的边尽量多
//所以可以以权值...
分类:
其他好文 时间:
2015-08-08 18:24:35
阅读次数:
113
1.题目描述:点击打开链接
2.解题思路:本题利用缩点+高斯消元解决。本题的最大特点就是电阻非零即一,如果电阻为0,说明零点之间是等电位点,可以看做一个整体,自然可以想到先利用并查集进行缩点操作,将复杂的电路图转化为不相等的电位点构成的电路图。如果转换完毕后,发现s和t在一个集合中,说明两点之间是等电位的,自然电阻为0,否则,对转换后的图G‘重新判断连通性,依然可以利用并查集解决,如果发现不连通...
分类:
其他好文 时间:
2015-08-08 00:00:03
阅读次数:
416
白书上的例题做一遍tarjan后,缩点,每一个scc节点的权为它的结点数,做一次DAG上的动规,求出路径上的最大点权和,就可以了 1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 using name...
分类:
其他好文 时间:
2015-08-03 20:41:16
阅读次数:
144
题意:n个城市m条有向边,把这些城市分成若干个州,分的原则是(1)u和v可以互相到达的话他们两个必须在同一个州(2)同一个州里任意两个城市u和v要满足u可以到达v或者v可以到达u。问州的最小个数是多少。
思路:先用Tarjan算法进行缩点,在缩点后的图上进行二分图匹配,最后求得最小路径覆盖=强连通个数-最大匹配数。
可以看一下:
http://blog.csdn.net/hellobabygogo3/article/details/7900812
http://www.cnblogs.com/ka20081...
分类:
其他好文 时间:
2015-08-02 11:50:57
阅读次数:
112