![](https://img-blog.csdnimg.cn/20210918212008284.jpg?x-oss-process=image/resize,m_fixed,h_224,w_224)
图论 - 有向图的连通性
文章平均质量分 84
有向图的连通性
繁凡さん
只想当个小透明,就图一乐^q^,希望可以做出一些微小的贡献(目前研究方向:自然语言处理、深度学习中的对抗攻击、元学习,欢迎大佬们来与我交流^0^)
展开
-
BZOJ 1589 Trick or Treat on the Farm (tarjan缩点,记忆化搜索)[Usaco 2008 Dec Gold]【BZOJ计划】
【BZOJ计划 #22】BZOJ 1589 Trick or Treat on the Farm [Usaco2008 Dec]随机开题x找简单题√原创 2021-10-09 21:18:17 · 550 阅读 · 0 评论 -
BZOJ 2140 稳定婚姻(强联通分量判环)【BZOJ修复工程】
【BZOJ修复计划 #9】BZOJ 2140 稳定婚姻原创 2021-09-11 22:00:14 · 279 阅读 · 0 评论 -
【2-SAT问题】解题报告:POJ 3678 Katu Puzzle(2-SAT问题的判定)
每个元素只有两种可能的取值,所以是2-SAT的模型.我们建立2*n个点,x∈[1…n]表示x取0,x∈[n+1…n+n]表示x取1考虑将所给的关系转化为有向边.u and v=1:u,v都必须是1.为了让他们都是1,我们需要让他们为0时出现矛盾,也就是加边(u,u+n),(v,v+n)u and v=0:如果u=1那么v=0,加边(u+n,v).同理,加边(v+n,u)u or v=1:如果u=0那么v=1加边(u,v+n).同理,加边(v,u+n)u or v=0:u,v都必须是0.为了让.原创 2020-06-22 10:21:37 · 282 阅读 · 0 评论 -
【割边缩点】解题报告:POJ - 3694 - Network(Tarjan割边缩点 + LCA + 并查集优化)
给定一张N个点M条边的无向连通图,然后执行Q次操作,每次向图中添加一条边,并且询问当前无向图中“桥”的数量。N≤105,M≤2∗105,Q≤1000N≤10^5,M≤2*10^5,Q≤1000N≤105,M≤2∗105,Q≤1000。首先运行一次tarjan,求出桥和缩点,那么无向图缩点为一棵树,树边正好是原来的桥。每次操作连接两点,看看这两点是不是在同一个缩点内,如果是,那么缩点后的树没任何变化,如果两点属于不同的缩点,那么连接起来,然后找这两个缩点的LCA,,因为从点u到LCA再到点v再到点u,将形成原创 2020-06-16 19:52:27 · 275 阅读 · 0 评论 -
解题报告:luogu P3469 [POI2008]BLO-Blockade(割点判定 + 思维计算)
题目链接:BLO这道题很明显就是要求割点。题目要求n个数,若将该点割掉,还有多少对有序对,满足x,y不连通。注意问的是有序对,所以x和y,与y和x是两种情况。若该点不是割点,很明显把该点割掉以后,剩余的点依然联通,只有iii这个被切掉的点与其他n−1n-1n−1个点不连通,答案就是2∗(n−1)2*(n-1)2∗(n−1)若该点是割点,那么把该点切掉以后,图会被分成若干个联通子图,答案就是各各联通子图大小的乘积。至于会分成多少个联通子图,我们看该割点相连的点中有多少个是割点,若有k个,那么该点原创 2020-06-14 21:48:21 · 257 阅读 · 0 评论 -
解题报告:luogu P2272 [ZJOI2007]最大半连通子图(tarjan缩点、递推DP、hash、set判重)
AcWing 1175. 最大半连通子图(tarjan缩点 + DP + hash)这时yxc上课时讲解的截图。一般用到tarjan算法的题目步骤都非常相似:tarjan算法缩点,建图(这里要判重)按照拓扑序递推(这里缩点以后逆向就已经是拓扑序了)/ 循环遍历新图求解答案。导出子图:点是原图的子集,边一定包含与子图中所有点有关的边。半联通子图:所有的两个点,我要么可以直接一条路过去,要么你可以直接过来。显然,对于任意一个强连通分量S∈GS\in GS∈G,它一定一个半连通子图,于是我原创 2020-07-27 22:18:03 · 228 阅读 · 0 评论 -
【缩点】解题报告:luogu P2746 [USACO5.3]校园网Network of Schools(有向图、强连通分量、缩点)
题目链接:P2746 [USACO5.3]校园网Network of Schools用tarjan算法求出强连通分量,并且缩点,如果缩点后只有一个点,则答案为1,0对于第一问,如果缩点后某一点的入度为0,则它肯定要一份软件,如果不为0,则一定可以从别的点获得软件,而对于下一个问题,缩点后,对每个出度为0的点,需拓展一条出边,对每个入度为0的点,需拓展一条入边,则可以完成条件。所以为了拓展的边更少,可以从出度为0的点向入度为0的点拓展边。所以所需最少的拓展数即出度为0的点数和入度为0的点数的较大者。#原创 2020-06-20 22:49:58 · 240 阅读 · 0 评论 -
解题报告:luogu P3916 图的遍历( 缩点 + DFS ? × 思维 + 反向建边 + DFS √ )
题目链接:图的遍历本题是一个有向图,要求每个点能到达的编号最大的点。由于是有向图,如果直接DFS如果有环就可能忽略一些点,所以我们可以直接缩点缩点之后在同一个强联通分量中的点可以相互到达,那么我们可以在缩点时记录每个联通分量中编号最大的点一个强联通分量中所有点能到达的最大编号的点即为这个联通分量能到达的最大的编号然后由于太麻烦了还是算了。次数少的dfs错的原因是因为当出现强连通分量的时候环中最先遍历的点的最大值无法更新 所以有人缩点 多次dfs也可以解决这个问题本题正确解法应该是原创 2020-06-14 17:19:04 · 222 阅读 · 0 评论 -
解题报告:luogu P2341 受欢迎的牛(Tarjan算法,强连通分量判定,缩点,模板)
题目链接:洛谷 受欢迎的牛基本上算是一道模板题根据题意,如果有环,意味着这个环里的牛都互相喜欢我们可以先求出环,然后把每一个环都看作一个点,这样整个图就变成了一个DAG(有向无环图)看有几个点出度为0,如果大于一个点没有出边,就说明没有最受欢迎的牛,因为必定有一对牛相互不服如果只有一个,那么该强联通分量的大小就是答案然后就是代码了,满满的注释QwQ#include<iostream>#include<algorithm>#include<cstdio>原创 2020-06-14 11:48:00 · 298 阅读 · 0 评论 -
UVA1327 King‘s Quest(强连通分量、给王子们匹配公主系列 - 1 )
让我们首先来考虑建图如果王子u喜欢妹子v那我们可以从u向v连一条有向边如果妹子v可以与王子u配对(即在配对表上),那我们可以从v向u连一条有向边对于样例如果王子和另一个姑娘在同一个连通分量上,说明可以娶。因为同一个强连通分量种都有相同数量的姑娘和王子,王子在找别的姑娘的同时,他的原配姑娘也能被在同一个连通分量的另一个王子找到。巫师给出的列表就是一个完备匹配(每一个人都有且只有一个匹配),我们要从这个完备匹配中选择答案#include<cstdio>#include<c.原创 2020-09-17 15:33:19 · 277 阅读 · 0 评论 -
解题报告:【kuangbin带你飞】专题九 连通图
目录A、POJ 1236 Network of Schools(有向图缩点)B、UVA 315 Network(找割点)C、UVA 796 Critical Links(桥)D、POJ 3694 NetworkE、POJ 3177 Redundant PathsF、HDU 4612 Warm upG、HDU 4635 Strongly connected(最多可加边数使得仍然非强连通)H、HDU 4685 Prince and PrincessI、HDU 4738 Caocao's BridgesA、PO原创 2020-09-14 21:36:15 · 2793 阅读 · 0 评论 -
HDU 4635 Strongly connected(缩点、最多可加边数使得仍然非强连通)
HDU 4635 Strongly connectedGive a simple directed graph with N nodes and M edges. Please tell me the maximum number of the edges you can add that the graph is still a simple directed graph. Also, after you add these edges, this graph must NOT be strongly原创 2020-09-14 19:04:00 · 232 阅读 · 0 评论 -
模板 - 有向图的连通性
整理的算法模板合集: ACM模板一般用到tarjan算法的题目步骤都非常相似:tarjan算法缩点,建图按照拓扑序递推(这里缩点以后就已经是逆拓扑序了)/ 循环遍历新图求解答案。上一道我认为非常经典的有向图tarjan算法模板例题,包含了:有向图的tarjan模板去重缩点模板按拓扑序递推模板/*[ZJOI2007]最大半连通子图*/const int N = 100007, M = 2000007, INF = 0x3f3f3f3f;typedef long long l原创 2020-07-29 08:56:55 · 675 阅读 · 0 评论 -
【图论专题】有向图的强连通分量
AcWing 1174. 受欢迎的牛#include<cstdio>#include<iostream>#include<algorithm>#include<cstring>#include<vector>using namespace std;const int N = 50007, M = 500007, INF = 0x3f3f3f3f;int n,m;int dfn[N], low[N];int ins[N...原创 2020-07-27 22:42:41 · 678 阅读 · 0 评论