![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
双连通分量
里阿奴摩西
这个作者很懒,什么都没留下…
展开
-
[LCT 边双连通分量缩点] BZOJ 2959 长跑
一个边双连通分量肯定可以定向成一个环 那么就缩点每次连接 要是本来不连通 就连起来连通的话就把树上路径全缩起来询问就是树上路径的值#include #include #include #include #include #include using namespace std; typedef pair abcd; typ原创 2016-12-23 16:04:26 · 546 阅读 · 0 评论 -
[双连通分量 缩点 并查集] POJ 3177 Redundant Paths & 3352 Road Construction
双连通分量缩点 并查集 竟然是第一次打缩点后是一棵树结论是(叶子节点+1)>>1 也就是每次取lca最浅的两个叶子连边#include#include#include#include#define cl(x) memset(x,0,sizeof(x))using namespace std;inline char nc(){ static char buf原创 2016-10-28 08:20:59 · 392 阅读 · 0 评论 -
[割顶 乱搞] BZOJ 2730 [HNOI2012]矿场搭建
充满了乱搞的气息首先如果一个联通块没有割顶 那么要两个 因为要避免单个那个塌陷了然后如果有割点 割点再把他分成子联通块 可以发现 叶子必须有一个 也就是说只和一个割点相连的子联通块必须有一个 方案数是size相乘然后再把ans1相加 ans2相乘#include#include#include#include#define cl(x) memset(x,0,size原创 2016-06-29 16:40:41 · 383 阅读 · 0 评论 -
[点双连通分量 缩点 树链剖分] Codeforces 487E #278 (Div. 1) E. Tourists
点双连通分量的缩点技巧来自:http://blog.csdn.net/a_crazy_czy/article/details/52244069在这里我们使用这样一种方法:对于每一个点双连通分量,我们建一个新建点储存点双所有点的最小权值,然后该点向点双内所有不是深度最小的点连一条边,然后深度最小的点(大多情况为割点,当然树根不一定是割点)向这个新建点连边。 注意到这棵树一定是普通原创 2016-12-24 15:57:12 · 630 阅读 · 0 评论 -
[边双连通分量 缩点 虚树 欧拉序列LCA] Codeforces 639F VK Cup 2016 - Round 1 F. Bear and Chemistry
这道题就是缩缩缩!先把原图缩成一个双连通树 然后查询的时候把所有关键点缩成一颗虚树 加完询问里的边 在缩一次双连通#include #include #include #include #include#include#define cl(x) memset(x,0,sizeof(x)) using namespace std; inline ch原创 2016-12-28 18:48:43 · 706 阅读 · 0 评论 -
[边双连通分量 Hash] BZOJ 4435 [Cerc2015]Juice Junctions
是不是只有我以为这是最小割树裸题 然后SB地大力分治跑最小割因为一个点度数不超过3 那么答案就是 0 1 2 3 先不在一个连通块的是0 在一个连通块但不在同一个边双里的是1然后怎么分辨 2 和 3 为2当且仅当存在删去某一条边 两个点不在同一个点双里 为3 也就是两个点所在的点双完全一样 我们尝试删除每条边 然后hash一下就好了#include<cstdio>#include<cst原创 2017-04-13 17:45:04 · 632 阅读 · 0 评论 -
[状压DP 边双连通分量] BZOJ 3590 [Snoi2013]Quare
陕西出出来的好题 题解注意一个边双可以拆成一条链和一个小边双 然后就可以了 f[i]:集合状态为i.且使在i中的点双联通的最小权值. h[i][j][0]:一个端点是j.另一个端点在点集i中的边的最小权值. h[i][j][1]:一个端点是j.另一个端点在点集i中的边的次小权值. g[i][j][k].集合状态为i.且使在i中的点构成一条链.两端点分别是j和k的最小权值.#原创 2017-04-22 20:57:56 · 788 阅读 · 0 评论