
tarjan
chen_minghui
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
hdu 1269 迷宫城堡 判断图是否强连通
利用kosaraju思想:如果有向图是强连通的,则从任意一个顶点开始s开始dfs,它可以访问到图的所有点,如果不能访问到所有点,图肯定不是强连通的。s能访问到图中所有点,不能说明其他任意顶点能访问到s。如果将图逆置,s仍能访问到所有点,说明原图中其他的顶点也能访问到s,图就是强连通的#include#include#includeusing namespace std;const in原创 2017-02-13 10:50:24 · 372 阅读 · 0 评论 -
HDU 3861 The King’s Problem 强连通缩点+最小路径覆盖
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3861题意一个国家有n个城市,城市之间有m条单向道路。国王为了方便管理城市,决定给所有的城市分为一个州,会确保每个城市属于一个州。如果城市之间u,v之间能够相互到达,那么u,v必须分在同一个州,另外,如果从某个城市一条道路一直走到没有路可走,那么在这条路上的所有城市划分成一个州。求最小划分州数。思路tarj原创 2017-09-28 17:38:19 · 308 阅读 · 0 评论 -
HDU 3639 Hawk-and-Chicken 强连通缩点+搜索
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3594题意n个人,为了争夺谁是胜者,出给一个游戏规则,每个人都可以支持其他人,如A可以支持B为胜者,这种支持可以传递,如:A->B->C则支持C有两个人,如果成环,那么环中每个人都获得环中其他人所有人的支持。试求出获得支持数最多的人,如果有多个,按从小到大的顺序输出其编号。思路首先是强连通分量缩点,缩点的权原创 2017-09-29 16:01:57 · 255 阅读 · 0 评论 -
HDU Cactus 3594 仙人掌图
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3594题意仙人掌图必须满足的条件: 1.强连通图 2.每条边只属于一个环 给定一图判断是否为仙人掌图思路翻译成tarjan算法里的条件: 1.不能存在横向边 2.dfs树中所有边(u->v)v是u的子节点,需满足:low[v]>=dfn[u] 3.dfs树中所有边(u->v)v是u的子节点,需满原创 2017-09-29 16:13:42 · 293 阅读 · 0 评论 -
HDU 2242 考研路茫茫——空调教室
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=2242思路断掉一条在一个边双连通分量中的边,不会使图变得不连通,首先想到的是边双连通分量缩点,得到的缩点图是一颗树,剩下的边都是桥,不能一条一条的删除,然后计算差值。断掉任意一条边后,变成森林含两个子树,用dp[u]表示以u为根结点的子树上所有节点权值之和。那么另外一颗树上所有节点权值之和为sum-dp[u原创 2017-09-29 22:21:55 · 268 阅读 · 0 评论 -
HDU 4005 The war 边-双连通缩点+树形dp
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4005题意在战争中,敌方有一些根据地?这些地区之间有路连接,使得所有区域可以相互通信,我方为了破坏他们的通信,也就是使图不连通,需要毁坏一条路,每条路的毁坏需要一些代价,敌人知道我方的计划,决定再加一条路,但是我方不知道,为了能让计划顺利执行,需要你来计算最少的代价。如果无法达到目的,输出-1思路在原图中原创 2017-09-30 22:21:40 · 271 阅读 · 0 评论 -
HDU 3394 Railway 点双连通分量
题意给定一个无向图,找出不在任意一个环上的边数和同时在多个环上的边数。思路点-双连通分量如果在边数等于点数,那么形成一个环,边数多于点数,说明环中有多条边。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<string>#include<queue>原创 2017-10-02 11:03:34 · 229 阅读 · 0 评论 -
POJ3694 Network 割边 LCA
题意:有n台电脑,他们之间有m条线使得它们能够通讯联网,有些网线是重要的,如果出故障会使得部分电脑无法连通。称这种出故障能造成无法连通的线为桥,现在为了测试,在原来的基础基础上新加Q条网线,每加一条判断,判断网络中有多少桥。也就是求无向图割边(桥)的数量。当然不能没加一条,就用tarjin算法来求割边。#include#include#include#include#define原创 2017-02-19 22:13:23 · 279 阅读 · 0 评论 -
poj 3177 Redundant Paths 边-双连通分量
题目链接http://poj.org/problem?id=3177题意某人要修路,保证任意两个点之间可以有至少两条不同的路线到达,求至少需要修的路的数量(加的边数)。给的图是连通的思路其实就是边-双连通图的定义:这种图任意两个顶点之间至少存在两条无公共边的路径。 所以就是需要加最少的边,使图变成边双连通图。具体做法是先双连通分量缩点成树,找出叶子节点的个数leaf。答案为(leaf+1)/2.做原创 2017-10-03 22:07:43 · 213 阅读 · 0 评论 -
HDU 3072 Intelligence System 强连通缩点
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=3072题意给定一个有向有权图,问从0点出发能够访问到其他所有点所需的最小花费,在同一个连通分量中的点访问时不需要加上权值。思路很明显是要tarjan缩点了。然后求DAG中的最小树形图?#include<cstdio>#include<iostream>#include<algorithm>#inclu原创 2017-09-27 18:46:18 · 201 阅读 · 0 评论 -
HDU 1827 Summer Holiday 强连通缩点
题目链接http://acm.hdu.edu.cn/showproblem.php?pid=1827思路强连通缩点,找入度为0的点的个数。花费最少要计算出缩点的权值,其值为缩点内权值最小的点的权值。#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>#include<st原创 2017-09-27 10:24:15 · 240 阅读 · 0 评论 -
POJ2375 Cow Ski Area 强连通分量
题意:给定一个n*m矩阵,每一个点都有一个高度,规定只能由高处向低处走,现在某些地方加电梯,使得低处能向高处走,问最少加几个电梯,使得任意两个点之间可以相互到达。即整个图是强连通的。用g++交题re,c++交能过#include#includeusing namespace std;const int maxn = 520;int scc[maxn][maxn],map[maxn]原创 2017-02-16 12:50:07 · 298 阅读 · 0 评论 -
HDU 3849 By Recognizing These Guys, We Find Social Networks Useful 找出所有割边
题意:现今,互联网使得人们能在网上发现以前的关系,这使得人与人之间形成了一个关系网,在n个人,m条关系网中,有一些关键的关系,如果这些关系破裂了,则整个关系网将不能连通。也就形成了不同的“圈子”。如果输入的“关系网”中,没有连通,则不存在关键关系。程序计算网中有多少个关键关系,并将关键关系按输入的顺序输出#include#include#include#include#include原创 2017-02-20 19:13:58 · 611 阅读 · 0 评论 -
hdu 4738 Caocao's Bridges 有重边求割边模板
题意:找到一条最小割边,输出其权值。有几点需要注意:1.如果割边权为0了,则至少需要1人去炸毁桥。2.如果一开始就没连通,就不需要人,输出0有重边求割边模板//思路:会出现重边 , 统计每条边的边数,注意规定边的两端大小,若是重边,判断时直接放弃 //有重边 求割边模板 #include#include#include#include#include#includ原创 2017-07-20 14:27:06 · 391 阅读 · 0 评论 -
poj 2553 The Bottom of a Graph 强连通缩点
题意:如果一个点v能够到达w,反过来w也能到达v点,那么称v点为sink点(汇点)。求出给定图中所有sink点,并按序号递增的顺序输出。思路在一个连通分量中,任意两点总是能够相互到达,将强连通分量缩点后,得到的dag中,求出出度为0的点就是答案。#include<cstdio>#include<queue>#include<iostream>#include<vector>#include<原创 2017-08-17 18:08:05 · 183 阅读 · 0 评论 -
poj 1236 Network of Schools 强连通缩点
题目链接:http://poj.org/problem?id=1236题意一些学校之间有一些单向链接的传输网络,现在要给这些学校下发某种软件。 问题1:怎样安排软件的发放,使得最终所有学校都有软件,且最初发放时的数量最小。(软件发放后学校之间可以通过网络线路传输得来的软件)输出这个数。 问题2:在学校间加最少的线路,使得最初只需发放一份,所有学校都可以接收到。思路问题1是求强连通缩点后入度为0的原创 2017-08-17 18:20:20 · 245 阅读 · 0 评论 -
poj 2186 Popular Cows 强连通分量
题目链接http://poj.org/problem?id=2186题意:一群牛中,每个牛都有自己认为的受欢迎的牛,如果A认为B受欢迎,B认为C受欢迎,那么A也会认为C受欢迎。问题来了:给定一个牛之间受欢的关系图,牛用1~n的数代替。找出所有的受n头牛欢迎的牛,输出它们所代表的数字。思路一道有情景的题目,蛮有意思的但就是想不出(╥╯^╰╥)。看了题解又觉得简单。 受所有欢迎,在图中就是所有点都能够原创 2017-08-17 18:39:33 · 244 阅读 · 0 评论 -
poj 2762 Going from u to v or from v to u? 单向连通图判定
题目链接:http://poj.org/problem?id=2762题意给定一个有向图,问图中任意两点u和v,是否满足u能到v或v能到u。(所谓的单向连通图)思路按照网上的说法,缩点后形成的dag必须是一条链才能满足yes的条件,所以拓扑排序时,出现两个或以上的入度为0的点,都不是单向连通的。网上的两种做法都被我搬来了#include<cstdio>#include<queue>#includ原创 2017-08-17 18:50:23 · 550 阅读 · 0 评论 -
hdu3671 Boonie and Clyde 割点
题意:给一个连通无向图。问存在多少对点,毁掉之后图不连通。思路:http://www.cnblogs.com/scau20110726/archive/2013/05/22/3092078.html#include// 思路:枚举要删除的第一个点。 #include#include#include#include#include#include#include#includ原创 2017-07-27 09:10:49 · 380 阅读 · 0 评论 -
POJ 3592 Instantaneous Transference 强连通缩点+dp最长路
题目链接:http://poj.org/problem?id=3592题意在一个n*m的方格中,方格可以填三种类型的字符, 1.数字 2.’*’ 3.’#’ 数字代表他到达这儿所能获得的价值,*表示这点为传输机,走到这儿可以选择传送与它绑定的某个点,#代表墙壁,不能走到这儿。一个人从左上角走到右下角,在每个点只能往下或往右,在传输机位置处,可以选择传送或不传送,每个点的价值只能获得一次,问原创 2017-08-18 20:28:27 · 270 阅读 · 0 评论 -
hdu 2767 Proving Equivalences (加多少边使其强连通)
题意大致是有n个 推断,和m个推出关系,输入a b代表a能推出b,问要使n个推断能够互相推出,至少要证明几个推断。a推出b,在图中是由a指向b的有向边,能够相互推出,即加最少的边使图变成强连通图#include#include#include#include#define Min(a,b) a<b?a:busing namespace std;const int maxn = 20原创 2017-02-14 12:22:19 · 386 阅读 · 0 评论 -
poj 3352 Road Construction 无向图边双连通分量
题目链接:http://poj.org/problem?id=3352题意给个无向图判断加多少边能使之变成边双连通图 无向图双连通分量求法:浅谈双连通分量、强连通分量 思路根据low值来判断点是否在一个双连通分量据说是错误的,可能low值不同的也在同一个双连通分量中。所以应该由栈来记录,类似求强连通分量。使整个图变成双连通图需要加的边数为缩点后形成的树中叶子的个数(leaf+1)/2。过程为先找出原创 2017-08-22 21:51:51 · 336 阅读 · 0 评论 -
Codeforces 652E Pursuit For Artifacts 双连通分量缩点
题目链接http://codeforces.com/problemset/problem/652/E题意给定一无向图,图中有些边被标记,某个人从s走到t,每条边只允许走一次,判断从s到t的路径中,是否可能存在被标记的边。(图保证连通)思路双连通分量缩点,如果缩点之后,缩点内存在被标记的边,那么将缩点标记。不同缩点之间存在标记边,在新图中同样给边加标记。这样缩点后的图,变成树,树中存在被标记的边和被标原创 2017-09-16 14:08:07 · 567 阅读 · 0 评论