
图论-连通分量
文章平均质量分 80
FDU_Nan
去做一个会思考,善于思考的人儿。
展开
-
poj 3114 Countries in War(强连通分量缩点+spfa求最短路)
http://poj.org/problem?id=3114题意:给出m条边及其权值,询问x y ,如果x,y在同一个强连通分量中,输出0,否则输出两点所在强连通分量的最短路径。思路:tarjan缩点 + 最短路。思路不难,关键是仔细。#include #include #include #include #include #include using namespac原创 2014-02-18 19:03:04 · 1104 阅读 · 0 评论 -
poj 3592 Instantaneous Transference(tarjan + 缩点 + 最长路)
http://poj.org/problem?id=3592题意:给定一个n*m格子的有向图,每个格子上是数字,‘#’或 '*' ,数字代表该格子上的矿石数目,'#'代表该格子不能走,' * '代表一个传送阵,送往某个给定的坐标。每次矿车只能向下或向右走一格。问矿车从左上角出发,最后能最多得到多少矿石。思路:因为矿车每次只能向右或向下走一格,说明这是这是一个有向图,最后问最多得原创 2014-01-18 15:30:22 · 1199 阅读 · 0 评论 -
poj 3352 Road Construction(边连通+tarjan+缩点)
http://poj.org/problem?id=3352题意:简化一下原题题意,意思就是给定一个连通图,问至少要加入几条边使得整个图变成一个边连通图,即图中任意两点都有两条以上的路径(不一定直接相连)。思路:tarjan算法,设置一个low数组,在建立深搜树的过程中,我们会得到每个节点的low值,对于low值相等的节点在同一个双连通分量中。由于在同一个边连通分量中的点的原创 2014-01-17 09:37:46 · 1706 阅读 · 1 评论 -
uva 11324 The Largest Clique(强连通分量缩点+DAG动态规划)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=116#problem/D题意:输入n和m,有n个点和m条有向边,求出一个节点集合包含的节点个数最多,并且该节点内的任何两点a,b,要么a能到达b,要么b能到达a,要么a和b互相到达。思路:强连通分量缩点形成有向无环图DAG,把缩点后的每个点的权值置为该强连通分量的节点个数原创 2014-04-18 23:41:48 · 2076 阅读 · 0 评论 -
图的割点,桥,双连通分支
点连通度与边连通度:在一个无向连通图中,如果有一个顶点集合,删除这个顶点集合,以及这个集合中所有顶点相关联的边以后,原图变成多个连通块,就称这个点集为割点集合。一个图的点连通度的定义为,最小割点集合中的顶点数。类似的,如果有一个边集合,删除这个边集合以后,原图变成多个连通块,就称这个点集为割边集合。一个图的边连通度的定义为,最小割边集合中的边数。双连通图、割点与桥:转载 2013-12-22 19:31:32 · 1147 阅读 · 0 评论 -
有向图强连通分量的Tarjan算法
[有向图强连通分量]在有向图G中,如果两个顶点间至少存在一条路径,称两个顶点强连通(strongly connected)。如果有向图G的每两个顶点都强连通,称G是一个强连通图。非强连通图有向图的极大强连通子图,称为强连通分量(strongly connected components)。下图中,子图{1,2,3,4}为一个强连通分量,因为顶点1,2,3,4两两可达。{5},{6}转载 2013-12-27 15:45:39 · 833 阅读 · 0 评论 -
Poj 1523 SPF(割点 + tarjan算法)
http://poj.org/problem?id=1523题意:给一个连通网络,其节点数目思路:tarjan算法:从第一个节点开始深度优先搜索,同时记录每个节点i的访问次序以及该节点所能到达的最高辈分(深度最低)的祖先,对这两个数比较确定这个点是否是割点;同时用subnets数组记录,若是割点并且是搜索树的根节点,则它的儿子数就是删除节点 i 后得到的连通分量,若是割点并且是非根节点原创 2013-12-22 19:53:55 · 919 阅读 · 0 评论 -
poj 1144 Network(割点)
http://poj.org/problem?id=1144题意很简单,已知图中各边的连接情况,求割点的个数。注意输入格式。。#include#include#include#includeusing namespace std;vector edge[110];int dfn[110];//记录节点被访问的深度int vis[110];//记录该节点当前的状态,0表示原创 2013-12-26 11:04:43 · 835 阅读 · 0 评论 -
poj 1330 Nearest Common Ancestors(LCA模板)
http://poj.org/problem?id=1330题意:给出两个点,求出这两个点最近的公共祖先。求LCA的模板题。大致思路就是访问到某个节点时,先将它自己加入集合中,然后递归访问它的子树,同时把子树加入到集合中来。子树搜索完毕后,判断该节点是否是输入的两个节点之一,若是,并且另外一个也已标记为访问过,那么另外一个节点的祖先便是他们的LCA。#include#includ原创 2013-12-26 15:38:52 · 932 阅读 · 0 评论 -
poj 3694 Network(tarjan + LCA)
http://poj.org/problem?id=3694题意:对于一个无向连通图,问加入某条边后,图中有桥的数目。思路:根据tarjan算法求出初始图的桥的数目,并用数组bridge标记桥的终点,在tarjan深搜树中求出每个节点的父节点(数组father表示)以及它们的深度,用于以后迭代求LCA。因为加入某条边后,树中就会存在环,而环中的每条边都不再是桥,这就与求LCA有关了原创 2013-12-26 16:58:37 · 1125 阅读 · 0 评论 -
poj 2186 Popular Cows(tarjan + 强连通分量 + 缩点)
http://poj.org/problem?id=2186题意:有n头牛,m个膜拜关系,膜拜关系是不可逆的而且是单向传递的,比如A膜拜B,B膜拜C,那么A也膜拜C,但B不一定膜拜A。最后问有多少头牛满足条件:除了它自己,其他所有的牛都膜拜它。思路:问题可以抽象为:给定一个有向图,n个顶点,m条有向边,有多少个顶点满足:其他所有的点都能到达该点。首先假如图G是一个有原创 2013-12-27 15:38:23 · 1215 阅读 · 0 评论 -
poj 1236 Network of Schools(强连通分量+缩点)
http://poj.org/problem?id=1236题意:有向关系体现在电脑之间可以通过网络单向的传输文件,并规定一旦有电脑存在该文件,那么所有它能传输的电脑都能在第一时间得到这个文件。给你n台电脑和每台电脑所直接传输的电脑编号。这里有两个问题:一是最少向网络中的几台电脑投放文件使得整个网络中的所有电脑能立刻获得该文件,二是最少向网络中添加几条单向连接可以使得这个网络中只要投放一个原创 2014-01-01 10:13:27 · 1601 阅读 · 0 评论 -
poj 2942 Knights of the Round Table(双连通分量+tarjan+二分图判定)
http://poj.org/problem?id=2942题意:有N个骑士,给出某些骑士之间的仇恨关系,骑士们开会时会围坐在一个圆桌旁。一次会议能够顺利举行,要满足两个条件:1:任意相互憎恨的两个骑士不能相邻2:开会人数为大于2的奇数若某个骑士任何会议都不能参加,那么就必须将他踢出,给出骑士之间的仇恨关系,问最少需要踢出多少个骑士?思路:题目要求踢出的人最少,那么原创 2014-01-04 14:06:00 · 2237 阅读 · 1 评论 -
训练赛 Grouping(强连通分量缩点 + DAG求最长路)
http://acm.sdut.edu.cn:8080/vjudge/contest/view.action?cid=158#problem/F大致题意:给出n个人和m种关系(ti,si),表示ti的年龄不小于si。问最小能被划分为几个集合,每个集合都要满足里面的人都无法比较。思路:对于一条路上的点,它们必定不能被划分到同一个集合中,因此原题变为求一条最长路。而题目中有可能原创 2014-06-21 21:20:30 · 1136 阅读 · 0 评论