连通性
zxyoi_dreamer
退役了退役了爬了爬了,搞个锤子算法竞赛,不如好好享受大学生活。
展开
-
【模板】tarjan算法求割点
参考题目:洛谷P3388 解析: 联赛完后统一更所有模板题题解。 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define re register #define gc getchar #define pc putchar #define cs const inline int ge...原创 2018-10-29 23:22:53 · 441 阅读 · 0 评论 -
2018.10.30【HNOI2012】【洛谷P3225】【BZOJ2730】矿场搭建(割点)
BZOJ传送门 洛谷传送门 解析: 代码: #include&lt;bits/stdc++.h&gt; using namespace std; #define ll long long #define re register #define gc getchar #define pc putchar #define cs const inline int getint(){ re int...原创 2018-10-30 22:42:35 · 184 阅读 · 0 评论 -
2018.10.30【NOIP练习】电力(割点)
传送门 解析: 本来难度只能称之为水题,但是数据毒瘤啊。 什么考虑一下图不联通的情况,在考虑一下用vector来存题目中没有给数目的边。tarjan乱搞,记录子树个数就可以成功A这道题。 代码: #include<bits/stdc++.h> using namespace std; #define ll long long #define re register #define ...原创 2018-10-30 23:43:00 · 150 阅读 · 0 评论 -
2019.01.16【HDU5359】Group(SCC)(支配树)
传送门 题意: 给出一个有向图,求出分别删掉每条边之后强连通分量数量是否变化。 解析: 我用三个小时的浪费证明了一件事: stack的空间常数比vector不知道大了多少倍。。。 最后把stack换成vector就AC了??? 卡常三小时,AC一秒钟。。。 去UOJ群里面问了一下,标准规定的stack底层容器是deque??? 然后手动改成stack<int,vector<int&g...原创 2019-01-16 20:02:31 · 336 阅读 · 0 评论 -
2019.02.28【HAOI2018】【BZOJ5303】【洛谷P4494】反色游戏(割点) (高斯消元推结论)
BZOJ传送门 洛谷传送门 解析: 出题人的部分分给的太多了吧。。。光是O(n4)O(n^4)O(n4)高斯消元解异或方程组就有50pts50pts50pts。 不过还是可以理解的,毕竟谁会想到考高斯消元啊。 一个很显然的做法,高斯消元解异或方程组,设最后自由元的数量为ttt,显然答案就是2t2^t2t。 注意一点,如果最后某一个联通分量中有奇数个黑点就gggggg了。显然我们每次操作对黑点数量...原创 2019-02-28 22:49:40 · 170 阅读 · 0 评论 -
2019.04.02【CodeForces487】E. Tourists(圆方树)(树链剖分)(线段树)
传送门 解析: 我们发现题目中简单路径这个条件其实就是将点双缩点后,重构树上路径经过的所有点双里面的点。 于是构建广义圆方树。这道题还是为了方便处理,将所有割边改造为方点。 按照套路,所有方点维护亲儿子的信息,直接开一个multiset就行了。 显然我们需要询问路径上最小值,上树剖和线段树维护,然后在询问的时候特判路径LCA为方点的情况。 代码有点长,但是没什么细节,很好写。 代码: #inc...原创 2019-04-02 09:57:00 · 190 阅读 · 0 评论 -
2019.04.02【洛谷P4320】道路相遇(圆方树)
传送门 解析: 换根支配树?不要想了,你要是明白支配怎么建的你就知道这玩意不存在的 显然在无向图上除了起点终点以外的必经点就是割点。 显然我们就是询问路径上割点个数。 建立广义圆方树,显然路径上的所有圆点就是割点。 相当于询问圆方树路径上圆点个数。 这个嘛。。。怎么开心怎么玩是吧。 代码: #include<bits/stdc++.h> #define ll long long #...原创 2019-04-02 10:47:40 · 184 阅读 · 0 评论 -
【TC SRM 499】ImpossibleGame(SCC)(拓扑序DP)
传送门 又想起了当初在TC上刷网络流的时候被submit failed支配一下午的恐惧。。。 题解: 发现由于我们允许交换任意两个位置的字符,对我们唯一有用的就只剩下字符个数,30的不超过4个的有序非负整数拆分有545654565456种,权值显然就是n!a!b!c!d!\frac{n!}{a!b!c!d!}a!b!c!d!n!,直接组合数算一下即可,连边可以直接暴力连,那么缩一个SCC之后就...原创 2019-10-02 23:29:30 · 181 阅读 · 0 评论