关闭

[状压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的最小权值. #...
阅读(287) 评论(0)

[边双连通分量 Hash] BZOJ 4435 [Cerc2015]Juice Junctions

是不是只有我以为这是最小割树裸题 然后SB地大力分治跑最小割因为一个点度数不超过3 那么答案就是 0 1 2 3 先不在一个连通块的是0 在一个连通块但不在同一个边双里的是1然后怎么分辨 2 和 3 为2当且仅当存在删去某一条边 两个点不在同一个点双里 为3 也就是两个点所在的点双完全一样 我们尝试删除每条边 然后hash一下就好了#include #include<cst...
阅读(175) 评论(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...
阅读(184) 评论(0)

[点双连通分量 缩点 树链剖分] Codeforces 487E #278 (Div. 1) E. Tourists

点双连通分量的缩点技巧 来自:http://blog.csdn.net/a_crazy_czy/article/details/52244069 在这里我们使用这样一种方法:对于每一个点双连通分量,我们建一个新建点储存点双所有点的最小权值,然后该点向点双内所有不是深度最小的点连一条边,然后深度最小的点(大多情况为割点,当然树根不一定是割点)向这个新建点连边。  注意到这棵树一定是普通...
阅读(216) 评论(0)

[LCT 边双连通分量缩点] BZOJ 2959 长跑

一个边双连通分量肯定可以定向成一个环 那么就缩点 每次连接 要是本来不连通 就连起来 连通的话就把树上路径全缩起来 询问就是树上路径的值 #include #include #include #include #include #include using namespace std; typedef pair abcd; typ...
阅读(152) 评论(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...
阅读(169) 评论(0)

[割顶 乱搞] BZOJ 2730 [HNOI2012]矿场搭建

充满了乱搞的气息 首先如果一个联通块没有割顶 那么要两个 因为要避免单个那个塌陷了 然后如果有割点 割点再把他分成子联通块 可以发现 叶子必须有一个 也就是说只和一个割点相连的子联通块必须有一个 方案数是size相乘 然后再把ans1相加 ans2相乘 #include #include #include #include #define cl(x) memset(x,0,size...
阅读(139) 评论(0)
    个人资料
    • 访问:261085次
    • 积分:11910
    • 等级:
    • 排名:第1320名
    • 原创:969篇
    • 转载:3篇
    • 译文:0篇
    • 评论:49条
    最新评论