题目链接:POJ 2186解题思路:
kosaraju算法,本以为要缩点,但是题目只要求找到拓扑排序的一个唯一的头,可以水过——通过计算强连通分量的出度。代码:#include
#include
#include
#include
#include using namespace std;int n...
分类:
编程语言 时间:
2015-05-23 16:56:30
阅读次数:
187
链接 :http://poj.org/problem?id=2186
一个联通分量里的所有的牛满足任何一个被其他牛认为是红人。强联通缩点之后 只需要找到一个且只有一个联通分量且它的出度为0 答案就是这个强联通分量点的个数。
#include
#include
#include
#include
#include
#include
#include
#include ...
分类:
移动开发 时间:
2015-05-21 14:14:19
阅读次数:
155
链接 :
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=10294
题意 : 告诉你n个等价的命题 和m个关系 比如 (u,v)代表u可以推导出v, 问至少需要补充多少条边。
用强连通缩点成一张DAG。
#include
#include
#include
#include
#includ...
分类:
其他好文 时间:
2015-05-19 16:33:48
阅读次数:
149
链接 :
http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=30726
题意 : 有向图G,求一个最大的点集,使得点集中任意两个节点u和v,满足 要么u可以到达v,要么v可以到达u,或者u和v可以相互到达。
可以强连通缩点成一张DAG,以为每个强连通分量要么选要么不选。求DAG上的最长路 二次建图 用了2种不同的...
分类:
其他好文 时间:
2015-05-19 16:32:12
阅读次数:
112
首先我们可以把没有询问过的边处理掉,重构图当然这样也不影响复杂度考虑到每次询问要删除的边很少,我们完全可以整体处理把询问划分成两个集合,在前半部分询问未出现边我们可以整体处理掉,缩点重编号(询问的边和点都要重编号)然后通过分治继续对前半部分做然后回来,后半部分我们也可以同样的处理这样我们要维护一个关...
分类:
其他好文 时间:
2015-05-18 10:43:13
阅读次数:
141
poj3592:题目链接
题目大意:给出n*m的矩阵,其中数字代表矿物的数量,#代表不可达,*代表传送门,传送到给定的位置。问最多可以收集多少矿物(每个矿物只能被收集一次,可以经过多次)
因为存在传送门,所以就会形成环,用强连通将形成环的缩成一个点,记录每个点代表的矿物数,最后用spfa找出最长路,也就是可以得到的最多的矿物数。(不会出现矩阵外的点)
#include
#include
...
分类:
其他好文 时间:
2015-05-16 18:24:18
阅读次数:
90
poj3114:题目链接
.题目大意:给出n个城市,m条送信的渠道,u v w代表u城市送信到v城市需要w小时。同时如果两个城市属于一个国家,那么送信时间为0,在一个国家中的条件是所有城市相互之间可以送信到达。
强连通找出连通块,那么每个连通块就是一个国家,缩点,重新建图,spfa找出要求的最短路径
#include
#include
#include
#include
#inclu...
分类:
其他好文 时间:
2015-05-16 18:21:21
阅读次数:
420
poj2186:题目链接
题目大意:有n头奶牛,m个关系,A B表示A奶牛认为B是备受关注的,这个关系具有继承性,比如:A B 和 B C那么A奶牛也会认为C是备受关注的,问有多少头奶牛是受到除自己以外所以人关注的
首先进行强连通,那么每个连通块中的点都是受到该连通块中其它点的关注的,进行缩点,原图变成一颗树,如果有且只有一个缩点以后的点的出度为0,那么这个点就是受到所有人关注的。记录下该点代...
分类:
其他好文 时间:
2015-05-16 16:37:21
阅读次数:
130
poj3694:题目链接
题目大意:给出n个点,m条无向边的图,图中存在割边,问每加入一条新的边后的割边的数量
首先,进行双连通缩点,缩点后的图变成一棵树,树上的每条边都是割边,然后没加入一条新的边后,会使这条边的两个点到这两个点的lca形成一个环,使原本的割边减少。
图学的不好,只能显式建树,后来发现建树后没什么用,等以后再修改了
#include
#include
#include...
分类:
Web程序 时间:
2015-05-16 12:03:16
阅读次数:
137
题目大意:给定n个点,支持以下操作:
1.在某两个点之间连接一条无向边
2.改变某个点的权值
3.将每条边设定一个方向,然后从xx走到yy,求能经过的所有点的权值和
首先如果这个图是静态的,我们把边双都缩点,那么每次询问显然就是两个点所在边双路径上的点权和
现在图是动态的,因此我们用动态树维护一下就行了
如果连边的两个点不连通,就在LCT中连接这两个点
如果连边的两个点已经连通,就将这...
分类:
其他好文 时间:
2015-05-15 12:11:36
阅读次数:
168