
并查集
文章平均质量分 72
a1214034447
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
CodeForces 1250E [2-sat]
题目链接:https://codeforces.com/contest/1250/problem/E 解题思路: 首先根据反转的性质有: 有字符串a,b,a的反转A,b的反转B,如果a和b匹配值为K,那么A和B的值也为K 同样a和B匹配值为M,那么A和b的匹配值也为M,因此有对称性 那么就可以转换成2-sat问题了,设点i的对立点集是i+n,也就是a和...原创 2019-11-03 23:03:44 · 394 阅读 · 0 评论 -
Comet OJ - Contest #13[A-D]
题目链接:https://www.cometoj.com/contest/71/problems A.「壶中的大银河」 水题 B.「龙颈之玉 -五色的弹丸-」 用一个双向队里维护一下贪吃蛇某个点的前一个位置方向是啥就好了 #include<bits/stdc++.h> #define x first #define y second #define inf 0x3f3...原创 2019-10-28 16:18:08 · 248 阅读 · 0 评论 -
牛客想开了大赛2 题解
题目链接:https://ac.nowcoder.com/acm/contest/907#question A.【六】平面 公式:(n*n+n)/2 + 1,n为直线数目 B.【一】n的约数 枚举质因子和每个质因子的个数,显然个数肯定从多到少。 #include<bits/stdc++.h> typedef long long ll; using namespace ...原创 2019-06-01 17:05:51 · 179 阅读 · 0 评论 -
UVALive - 6889[并查集+STL]
题目链接:https://vjudge.net/contest/301219#problem/F 解题思路: 枚举每个矩形的时候,看它是否需要和其他人合并只需要查看它的外形边框是否又被标记,这个可以直接用离散化,然后set存一下每个矩形四个格子,就可以用log(n)找到合并的矩形,然后后并查集并一下就好了。 #include <bits/stdc++.h> #define...原创 2019-05-12 21:03:26 · 243 阅读 · 0 评论 -
Gym - 101128B[并查集]
题目链接:http://fastvj.rainng.com/problem/Gym-101128B 解题思路: 其实这是一个sat问题,当我们枚举要拿那三张牌的时候,如果条件中的两张牌在23张里面,并且是一人分一张的情况,那么此时我们就无法直接判断出牌的归属。 那么此时不妨设一个并查集,将不能跟牌i在一起的都归并带f[i+26]当中,正所谓敌人的敌人是朋友,只有两种情况,要么都不在一起...原创 2019-05-02 21:54:48 · 231 阅读 · 0 评论 -
hdu 6392 - 线段树 + 并查集
题目思路:http://acm.hdu.edu.cn/showproblem.php?pid=6392 解题思路: 线段树叶子维护每列并查集的情况,每个区间维护最左端列的祖先和最右端列的祖先(这里它们维护的祖先是区间内的祖先不是整个矩形的祖先)。 在区间合并的时候要先初始化左右子区间的左右端列的祖先,因为它们的祖先可能已经不再子区间中了,在之前的合并中已经跑出去。在这次新的合并中要使得...原创 2019-03-02 21:37:10 · 387 阅读 · 0 评论 -
洛谷 P3402 - 可持久化并查集
题目链接:https://www.luogu.org/problemnew/show/P3402 解题思路: 可持久化并查集也就是可持续化线段树 + 并查集 == 主席树 + 并查集 像我们平常做的并查集都是路径压缩,但因为要保证可持续化,所以信息不能改变,所以我们采用启发式合并来合并集合。 启发式合并的树最高深度不会超过log(n)+1。因为深度为2的树需要两个点,那么深度为3的...原创 2019-03-02 21:02:24 · 366 阅读 · 0 评论 -
wannafly 挑战14 E - 高斯消元+并查集
题目链接:点击打开链接解题思路:本题可以倒着做,然后利用并查集合并两个矩阵,利用高斯消元可以求出线性基。#include<bits/stdc++.h> using namespace std; const int mx = 1e5 + 10; typedef long long ll; int bin[mx][35],n,fa[mx]; int a[mx],pos[mx],ans[mx...原创 2018-04-21 11:34:16 · 164 阅读 · 0 评论 -
hdu 1811 - 拓扑排序+并查集
解题思路:相等的要用并查集缩点,然后再拓扑排序一下就行。 代码: #include #include #include #include #include #include #include using namespace std; typedef long long ll; #define inf 0x3f3f3f3f const int mx = 1e4+5,mod = 1e9+7原创 2017-08-14 19:21:33 · 294 阅读 · 0 评论 -
Codeforces Round #423 Div. 2-专题
A:水题不懂的看下代码就懂了 #include #include #include #include #include #include #define lson l,mid,rt<<1 #define rson mid+1,r,rt<<1|1 #define inf 0x3f3f3f3f using namespace std; typedef long long ll; const int原创 2017-07-12 20:33:51 · 235 阅读 · 0 评论 -
CodeForces - 480E-DP+并查集
解题思路:枚举每点到左上角点的最大正方形,然后用并查集压缩路径求左延伸长度,右延伸长度,以离线递增处理。 代码: #include using namespace std; #define maxn 2010 inline void MIN(int &a,int b){if(a>b)a=b;} inline void MAX(int &a,int b){if(a<b)a=b;} int转载 2017-05-11 11:11:48 · 512 阅读 · 0 评论