连通分量
_beginend
这个作者很懒,什么都没留下…
展开
-
【Comet OJ - Contest #14 E 飞翔的小鸟】【图论】
题意给一个nnn个点mmm条边的有向图,对每个点xxx求从111到xxx的所有路径中边权极差最大是多少。n≤200000,m≤500000n\le200000,m\le500000n≤200000,m≤500000分析先缩点,这样新图里的点也有了点权。假设先经过最小值再经过最大值,那么枚举经过最大值之前经过的最后一条边,预处理fxf_xfx表示走到xxx经过的最大权值,就可以知道每一条...原创 2019-11-12 17:15:21 · 237 阅读 · 0 评论 -
bzoj 1718: [Usaco2006 Jan] Redundant Paths 分离的路径 tarjan
题意给一个nnn个点mmm条边的连通无向图,问最少需要加多少条边使得任意两点之间均存在两条没有边相交的路径。n≤5000,m≤10000n\le5000,m\le10000n≤5000,m≤10000分析显然先把所有边双缩起来变成一棵树,然后对树上的节点连边。结论是只用连⌈叶子数量2⌉\lceil\frac{叶子数量}{2}\rceil⌈2叶子数量⌉条边即可。网上的证明我都没看懂。。...原创 2019-07-12 12:55:54 · 186 阅读 · 0 评论 -
hdu 6072 Logical Chain Kozaraju+bitset
题意有一张n个节点的有向图,m组操作,每次最多翻转K条边,求每组操作后可以相互到达的点的对数。n≤250,m≤25000,k≤10n\le250,m\le25000,k\le10n≤250,m≤25000,k≤10分析只要求出每个强连通分量的大小就可以知道答案了。用tarjan来做的时间复杂度是O(n2m)O(n^2m)O(n2m),显然跑不过。如果用Kozaraju的话,可以用bit...原创 2019-07-05 10:48:31 · 200 阅读 · 0 评论 -
Codeforces 97E Leaders 点双连通分量
题意给一个n个点m条边的无向图,每次询问两个点x和y之间是否存在一条长度为奇数的简单路径。 n,m,q≤105n,m,q≤105n,m,q\le10^5分析先把dfs树建出来,若x和y的深度奇偶性不同,显然答案为Yes,不然的话,存在一条长度为奇数的简单路径当且仅当x到y路径上存在一条边,满足这条边在一个奇环中。 那如何判断每条边是否在奇环中呢? 对于一个点双,不难发现如果这...原创 2018-07-08 12:39:04 · 1085 阅读 · 0 评论 -
Codeforces 855G Harry Vs Voldemort 边双连通分量+并查集
题意给一棵nnn个节点的树,有qqq次操作,每次操作会加入一条边,可能会形成环。每次操作后输出有多少个三元组(u,v,w)(u,v,w)(u,v,w)满足其两两不同且存在一条uuu到www的路径和一条vvv到www的路径满足两条路径之间没有公共边。 n,q≤105n,q≤105n,q\le10^5分析如果只是一棵树的话,可以通过枚举中间点www来计数。 如果是一个图的话,若u,...原创 2018-06-12 20:25:59 · 497 阅读 · 1 评论 -
LibreOJ #2524.「HAOI2018」反色游戏 tarjan算法
题意给一个n个点m条边的无向图,每个点一开始是黑色或白色中的一种。问有多少个边集EEE的子集E′E′E',满足把E′E′E'中每条边的两个端点颜色分别取反后,所有点的颜色都是白色。 n,m≤105n,m≤105n,m\le10^5分析很暴力的想法就是列异或方程组,然后高斯消元暴力求解,复杂度是O(m3w)O(m3w)O(\frac{m^3}{w}),显然过不了。 对于一个连通块...原创 2018-05-17 19:15:16 · 401 阅读 · 0 评论 -
uoj #210. 【UER #6】寻找罪犯 2-SAT
题意有n个人和m条证词,第i条证词是第xixix_i个人说第yiyiy_i个人是或不是罪犯。若一个人不是罪犯则他说的全是真话;若一个人是罪犯则他最多说了一句谎话。要求输出一组可行解。 n,m<=100000分析考虑把每个人和每条证词均拆成两个点,表示是犯人还是好人或者是真话还是谎话。然后就可以大力2-SAT建图了。 对于某个人说的全部证词,由于最多只能有一个谎话,所以每个...原创 2018-03-07 15:21:21 · 313 阅读 · 0 评论 -
Codeforces 555E Case of Computer Network 边双连通分量
题意给一张n个点m条边的无向图,要求给每条边定向。 要求对于给出的q组限制(u,v),点u都可以到达点v。 询问是否可行。 n,m,q<=200000分析对于一个边双连通分量中的点,肯定是让他们能够互相到达是最优的。 那么就先把所有边双缩起来,就变成了一棵树的定向问题。 对于一棵树的定向,我们可以用树上差分来实现。具体看代码。代码#include&l...原创 2018-03-07 09:17:12 · 375 阅读 · 0 评论 -
bzoj 5017: [Snoi2017]炸弹 线段树优化建图+tarjan+拓扑排序
题意在一条直线上有 N 个炸弹,每个炸弹的坐标是 Xi,爆炸半径是 Ri,当一个炸弹爆炸时,如果另一个炸弹所在位置 Xj 满足: Xi−Ri≤Xj≤Xi+Ri,那么,该炸弹也会被引爆。 现在,请你帮忙计算一下,先把第 i 个炸弹引爆,将引爆多少个炸弹呢? N≤500000 −10^18≤Xi≤10^18 0≤Ri≤2×10^18分析大概就是说,每个炸弹可以向一段连续的区原创 2018-01-20 07:57:58 · 608 阅读 · 0 评论 -
bzoj 4784: [Zjoi2017]仙人掌 树形dp+双连通分量
题意给出一个仙人掌,无重边自环,问有多少种加边方案使得其还是一个仙人掌(可以不加)。 n分析显然一开始可以特判掉不是仙人掌的情况,然后输出0.这个可以用树上差分来实现。然后将所有的环都找出来,将环上的边标记为不可走,那么剩下的边就组成了一个森林,我们就可以愉快的树形dp啦! 考虑一棵树,我们设强制每颗子树必然要加一条连到其祖先的边(根节点特判),显然这样的边只能有一条。若本原创 2017-03-29 19:23:54 · 974 阅读 · 0 评论 -
bzoj 2387: [Ceoi2011]Traffic 强连通分量+dp
题意格丁尼亚的中心位于Kacza河中的一座岛屿。每天清晨,成千上万辆汽车通过岛屿从西岸的住宅区(由桥连接岛的西部)到东岸的工业区(由桥连接岛的东部)。 该岛类似于矩形,它的边平行于主方向。故可将它看作是笛卡尔坐标系中的一个A*B的矩形,它的对角分别为(0, 0)和(A, B)。 岛上有n个交通节点,编号为1…n(junction, 此处可理解为广义的路口),第i个节点坐标为(xi, yi)。如果原创 2017-12-16 15:18:23 · 679 阅读 · 0 评论 -
bzoj 2438: [中山市选2011]杀人游戏 强连通分量
题意一位冷血的杀手潜入 Na-wiat,并假装成平民。警察希望能在 N 个人里面,查出谁是杀手。警察能够对每一个人进行查证,假如查证的对象是平民,他会告诉警察,他认识的人, 谁是杀手, 谁是平民。 假如查证的对象是杀手, 杀手将会把警察干掉。现在警察掌握了每一个人认识谁。每一个人都有可能是杀手,可看作他们是杀手的概率是相同的。问:根据最优的情况,保证警察自身安全并知道谁是杀手的概率最大是多少? 1原创 2017-10-23 21:05:05 · 343 阅读 · 0 评论 -
bzoj 1797: [Ahoi2009]Mincut 最小割割边存在条件
题意给出一个有向图,问哪些边一定存在最小割中,哪些边可能存在于最小割中。 n<=4000,m<=60000分析首先对原图跑最大流,得到残余网络。 很容易得知若一条边u->v存在u->v的增广路,则这条边一定不是割边,反之亦然则可能是割边。 那么我们就把点分成了s集和t集还有一部分不确定。若一条边连接了s集和t集,则这条边一定是必然存在度最小割中的边。那么我们就得到了这样一个算法: 把残余网络原创 2017-07-11 11:05:46 · 407 阅读 · 0 评论 -
bzoj 1179: [Apio2009]Atm spfa+强连通分量
题意给一个有向图,给定起点,求一条路径(不一定是简单路径)使得经过的点的权值和最大(每个点只算一次),且要在给定的若干个点中选一个作为终点。 n,m<=500000分析我真的sb,居然没有一眼看出正解是啥。。。只要缩点一下然后直接spfa就好了。代码#include<iostream>#include<cstdio>#include<cstdlib>#include<cstring>#in原创 2017-06-05 20:20:47 · 381 阅读 · 0 评论 -
bzoj 2707: [SDOI2012]走迷宫 期望dp+强连通分量+高斯消元
题意给出一个有向图问从起点到终点期望走多少步。满足每个强连通分量的大小不大于100. n<=10000,m<=1000000分析之前做过一道类似的题,是一个无向图而且n<=100,那么显然有递推式f[i]=1+∑jf[j]∗1d[i]f[i]=1+\sum_j f[j]*\frac{1}{d[i]} 满足i能到达j,d[i]表示i的度数。 那么显然可以用高斯消元搞。 对于这题而言,我们可以用原创 2017-03-07 21:39:06 · 464 阅读 · 0 评论 -
bzoj 2208: [Jsoi2010]连通数 拓扑排序+强连通分量+bitset
题意给出一个有向图,求有多少个点对(i,j)满足i可以到达j(i可以等于j)分析这题据说暴力也能卡过去,毕竟20s的时限我才跑了1s+,但打暴力的话就没意思了,所以就果断码了一波正解。 这题一开始也有一点大概的思路也就是用bitset之类的状态压缩来搞一搞,但是没想到用tarjan来缩点。 那么正解其实就是先用tarjan来缩一下点,那么每个强连通分量对ans的贡献就是size*size,然后拓原创 2016-10-19 21:16:30 · 670 阅读 · 0 评论