图论—连通图
文章平均质量分 75
My_ACM_Dream
生活没有彩排每天都是现场直播
展开
-
poj3694(边双联通分量)
/* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #include using namespace s原创 2014-11-13 11:01:08 · 566 阅读 · 0 评论 -
poj1904(强联通分量)
这题非常的好,前面代码写搓了一直re、wa 题目所给的名单是很有用的,首先按照王子陪女孩的方式 建边,然后名单中的女孩对应王子建一条反向边。 为什么这样做呢? 其实就是将名单中王子和女孩捆绑成一个点,因为王子到女孩有一条边,名单中的女孩到王子也有一天边,那么着两个点就是互通的,那么久相当于他们是同一个点一样,在建图的时候能到达王子的都能到达名单中的女号,能到达名单中的女孩的都能到达王子。这样动手画下这题的草图(名单中的女孩和王子是一个点)很容易看出之间的关系,分析一下,发现如果是同一个联通分量里面的点刚好满原创 2014-11-14 11:17:01 · 1055 阅读 · 0 评论 -
poj 2553 The Bottom of a Graph (强联通分量+缩点)
一直wa不知道为什么 /* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include using namespace std; typedef long long lld; typed原创 2014-11-13 14:58:30 · 489 阅读 · 0 评论 -
hdu 4612 Warm up (边双联通分量缩点)
题意: 给出一个图,问加一条边使得整个图桥变得最少。求最少的桥数。 题解: 双联通缩点成树,然后得到数的直径,那么我们要连接的点肯定是数直径的端点,那么只要知道直径就知道这两个端点之间边的个数,缩点完的边就是桥,于是最少的桥数=点数-1-数的直径(因为是树点数-1肯定就是边数了)。 无限爆栈。 #pragma comment(linker, "/STACK:1024000000,1024原创 2015-04-02 14:38:18 · 589 阅读 · 0 评论 -
UVA 315 Network (割点)
计算割点的个数 #include #include #include #include #include #include #include #include #include using namespace std; #define B(x) (1<<(x)) typedef long long ll; void cmax(int& a,int b){ if(b>a)a=b; } void c原创 2015-03-31 21:46:02 · 653 阅读 · 0 评论 -
poj 1236 Network of Schools (强联通分量+缩点)
题意: 给出多个学校的网络图,每个学校多有一个表,表中存这个学校能联通的学校编号(单向联通)。两个问题:1、至少要多少分资料才能全部传到所有学校;2、至少要连多少条边才能使得整个整个网络联通。 题解: 强联通,缩点完,根据缩点判断入度为0的点的个数ansA,出度为0的点的个数ansB。乱搞能发现两个问题的答案分别是ansA,max(ansA,ansB) #include #include原创 2015-03-31 20:12:43 · 486 阅读 · 0 评论 -
hdu 4635 Strongly connected (强连通分量缩点)
题意: 问能加的最多边数使得原图任然不是强连通的。 题解: 很好的题目。我们分析,当恰好连到某个边时正好是强连通,那么我们把这个边去掉,那么剩下的图肯定是两个强连通分量,于是对于这个图我们分析边的数量,假设两个强连通分量的点数分别是x,y,那么这两个分量的内部边肯定饱和了,x->y的边肯定也饱和了,那么 边数=x*y+x*(y-1)+y*(x-1);整理下变成n*n-n-x*y。这就是饱和的原创 2015-04-03 14:00:35 · 630 阅读 · 0 评论 -
poj 3694 Network (找桥,LCA)
题意: 给出一张图,Q个询问,每个询问都是在前面询问的基础上,每个询问连一条边,问现在还有几个桥。 题解: 跑一边Tarjan,同时记录桥、父亲的信息,然后对于每个询问找LCA,途经桥,那么桥的数量就减一。 #include #include #include #include #include #include #include #include #include using n原创 2015-04-01 15:56:12 · 507 阅读 · 0 评论 -
poj 3177 Redundant Paths (边双联通分量+缩点)
/* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #include using namespace s原创 2014-11-13 10:58:11 · 525 阅读 · 0 评论 -
hdu 4738 Caocao's Bridges (找桥,有重边)
题意: 给出一个图,现在只能切除一个路使得整个图不联,每条路都有保安(w个),要切除这条路需要至少需要人力w人。问图要使得整个图不连通需要的最少人力。 题解: 这题有一个坑点,就是如果路上没有保安的情况,这种情况也是需要有人去切除路的,所以至少1人。这题有重边。。。 #include #include #include #include #include #include #include原创 2015-04-04 12:32:44 · 439 阅读 · 0 评论 -
sdut 2604 Thrall’s Dream (强联通分量+缩点)
题意: 题目给出一张图,问任意两点能否有一天路径连接。 题解: 强连通分量,然后缩点,只要形成一条链或者一个环就满足条件!虽然说重边不影响Tarjan的正确性,但是重边会影响度数的统计,因此一直wa,就是错在把重边重复的统计进入度数,这样判断就不准确了。 #include #include #include #include #include #include #include #incl原创 2015-04-07 16:17:58 · 672 阅读 · 0 评论 -
poj 2186 Popular Cows (强联通分量+缩点)
给出一些牛自己认为popular的牛,问那些牛是被所有牛认为popular的。 裸的强联通分量+缩点。 #include #include #include #include #include #include #include #include #include using namespace std; #define B(x) (1<<(x)) typedef long long ll原创 2015-03-31 00:51:23 · 442 阅读 · 0 评论 -
poj3592(Tarjan+Spfa)
不知道为什么思路都对了,各种数据都过了,就是wa 思路直接原创 2014-11-14 16:11:38 · 788 阅读 · 0 评论 -
POI1119
/* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #include原创 2014-11-13 11:03:43 · 510 阅读 · 0 评论 -
zoj2588(割边)
/* * this code is made by LinMeiChen * Problem:zoj 1311 * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #i原创 2014-11-13 11:08:35 · 663 阅读 · 0 评论 -
关节点(割点)
深度搜索回溯的时候处理low && dfn 以zoj1119为例 /* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #incl原创 2014-11-13 10:47:21 · 572 阅读 · 0 评论 -
连通度(定点联通度&&边联通度)
用网络流求解 拆点 原网络的点拆成 i i+n 流量1 其他所有边都为oo原创 2014-11-13 10:49:10 · 2334 阅读 · 0 评论 -
边双联通分量
不多说,操作都是在核心算法的基础上变化,关键的判断 low[v] dfn[u] 之间的关系判段 poj 3177原创 2014-11-13 10:52:49 · 595 阅读 · 0 评论 -
ZOJ1119(割点)
/* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #include using namespace s原创 2014-11-13 11:05:41 · 560 阅读 · 0 评论 -
重联通分量
重联通分量的算法是基于关键节点的,处理方式稍微不同 /* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #in原创 2014-11-13 10:48:03 · 523 阅读 · 0 评论 -
强联通分量
这类题目普遍有个共性就是缩点,算法模板,核心的部分就是缩点,理解比价抽象,不过还行。 有两种算法可以用,我个人倾向于第一种算法Tarjan 这个算法一次性遍历,而且变化很多联通性的问题都可以用这个算法的构架加上变形解决 举个例子 poj2186 /* * this code is made by LinMeiChen * Problem: * Type of Problem: * T原创 2014-11-13 10:56:22 · 519 阅读 · 0 评论 -
zoj1311(割点)
/* * this code is made by LinMeiChen * Problem: * Type of Problem: * Thinking: * Feeling: */ #include #include #include #include #include #include #include #include #include #include using namespace s原创 2014-11-13 11:06:49 · 495 阅读 · 0 评论 -
poj3160(Tarjan+Spfa)
方法RT,但是一直wa不知道为何,感觉自己的代码写搓了 今天起来研究了一下,发现错误好多,机智的找到错误,ac原创 2014-11-13 23:25:13 · 1049 阅读 · 0 评论 -
hdu 5215 Cycle (图论,盘环)
题意: 给出一个无向图,问是否存在奇环和偶环。 题解: 首先奇环判断比较简单,如果是二分图必定没有奇环,否则必定有奇环。 接着是偶环的判断,偶环比较复杂点,对于一个双联通分量,分两种情况: 1、如果双联通分量就是一个环,那么就可能为奇环也可能为偶环,要特判。 2、如果双联通分量不是一个环,那么肯定存在偶环在里面。 对于1,我的做法是对每个双联通分量进行搜索,记录点被走过大于1的个数,原创 2015-05-05 17:16:27 · 980 阅读 · 0 评论