强联通
韦我独尊-德天独厚
这个作者很懒,什么都没留下…
展开
-
强联通模版 题目是HDU1269
#include #include #include #include using namespace std; #define MAXN 10010 #define MAXM 100010 struct Edge { int v, next; }edge[MAXM]; //边结点数组 int first[MAXN], stack[M转载 2013-10-24 19:56:54 · 794 阅读 · 0 评论 -
ZOJ3232 It's not Floyd Algorithm 强连通缩点 + floyd
当我们看到这篇文章后http://blog.sina.com.cn/s/blog_6a44b3340100ko9d.html,估计都不太敢写解析,应该没有比这个更详细更形象的了,把传递闭包 那个外壳剥去 就简单多了,弄清楚传递闭包 跟floyd的关系就可以了,还是直接上代码吧#include#include#include#include#include#include#i原创 2014-01-24 18:50:06 · 872 阅读 · 0 评论 -
HDU3594 Cactus 强连通 判断一条边是否只在一个环内
题意很简单,如果图满足1:强连通图2:图中每条边只处于一个环内怎么样判断一个边只在一个环内呢?其实在没有找到一个环之前的时候,有一个DFS的过程,在这个过程中每走到一个点,我们就记录一下它是有哪一个点走下来的 也就是这个点的上一层的点,等到我们找到环的时候,我们马上返回去查找,查找那个点是 out了两次以上,那么肯定有边处于两个或者两个以上环内,就不符合了#includ原创 2014-01-24 19:03:12 · 992 阅读 · 0 评论 -
POJ2762 Going from u to v or from v to u? 强连通 Tarjan缩点+拓扑排序topsort
过题率并不高,肯定有什么陷阱的,所以仔细读了题目,有个地方还是要注意的,检验一个图中任意两点A跟B是否可以到达,即 A->B或者B-> A 或者AB,所以这个不是一个简简单单的强联通分量的问题了,要先进行缩点操作,此时若此图要满足题目的要求的话,化简过后的图 肯定是符合topsort的性质的,因为要任意两点 可以到达(注意不要求互相到达),所以可以用topsort来解决,在sort过程中出现原创 2014-01-23 22:21:24 · 1262 阅读 · 0 评论 -
HDU3836 Equivalent Sets 强联通分量 Tarjan
因为团队合作的原因,我主要是要学好数论 补枪数据结构 还有多多做DP这类题目,图论很差劲,感觉学图论真的要听大神的话,好好看书,静下心来好好的看,看完一遍可能什么都不懂,但是对各个名字理解了,结合做题,很快就会明白很多,图论比较抽象的建图,一定要多多在脑海中构造,看书很重要,这个是本菜鸟的经验,多多包涵, 题目看上去复杂,题目也比较短,耐心读一读,仔细分析一下 所谓的子集和集合的关系什么的,乱原创 2014-01-23 19:43:07 · 816 阅读 · 0 评论 -
HDU1827 Summer Holiday 强连通 Tarjan 缩点 统计
中文题一道,好题啊,读题简单多了,做起来也不难,就是缩点,缩点完成后,入度为0的点 就是需要主人公特意需要去打电话的点,缩点后 对于某一个团的最小话费就很好求了,直接暴力查找就可以了,#include#include#include#include#include#include#include#include#include#include#inc原创 2014-01-23 15:26:30 · 850 阅读 · 0 评论 -
HDU2767 Proving Equivalences 强连通 Tarjan 缩点成树 统计
题目给了N个点M条边,问还需要几条边可以是的此图变成强连通图,我们知道 A->B,B->C,C->A,这样A,B,C三点成环,如果此时有一个点D与A连接,其实D就与B,C都连接了,所以可以把A,B,C当作一个整体来处理,也就是所谓的缩点,把整个图先缩成一个个团点,只要把这几个团点连在一起 实际上所有的点就连在了一起了,缩点完成后,统计一下连通的出度入度,取大的那个就可以了,时间宽裕,统计完全可以暴原创 2014-01-22 20:35:20 · 912 阅读 · 0 评论 -
HDU1269 迷宫城堡 强连通 Tarjan
判断一个图中任意两个点是否双向,就是判断一个图是不是强连通图,每一个点的Low值都是一样的,换言之low数组值都想等#include#include#include#include#include#include#include#include#include#include#include#include#include#define ll long lo原创 2014-01-22 18:34:44 · 806 阅读 · 0 评论 -
POJ2186 Popular Cows 强连通 Tarjan
强连通的模版题,Kosaraju,Tarjan,Garbow三种随便选一种就可以了,三种算法的复杂度都是一样的O(n+m),题意是有N头牛M种关系,牛之间会产生仰慕感,而且会传递,比如说A仰慕B,B仰慕C,那么A仰慕C,问有几头牛是被所有的牛仰慕的这里我们可以看到一般如果 A->B,B->C,C->A,形成环的话也就是强连通形成时,这三个牛任何一个仰慕其它牛,也就代表着三头都仰慕其它的原创 2014-01-21 21:14:08 · 803 阅读 · 0 评论 -
强连通 模版
转自http://blog.csdn.net/acmmmm/article/details/9963693#define N 30100//N为点数#define M 150100//M为边数int n, m;struct Edge{ int from, to, nex; bool sign;//是否为桥}edge[M<<1];int head[N]转载 2014-01-21 18:52:33 · 698 阅读 · 0 评论 -
POJ3114 Countries in War 强连通缩点 + 最短路
今天做了个练习赛,,这道题目主要是题意坑爹,间谍在战争时期想要传递一份邮件回国,邮件可以在各个邮局之间传播,但传递是单向的,并且耗时,如果两个邮局在一个国家的话,那么邮件在他们之间的传递不用耗时,判断两个邮局是否在一个国家的标准是两个邮局可以互相传递邮件由于两个邮局可以互相传递邮件就是一个国家的,可以想到强连通,进行缩点操作,缩点过程中要同时维护新图的边权,会发现每个国家之间想要完成联系可以通原创 2014-01-24 18:57:48 · 917 阅读 · 0 评论