
算法-并查集
YxuanwKeith
这个作者很懒,什么都没留下…
展开
-
BZOJ4633 SCOI2016 萌萌哒 并查集维护ST表
题目大意一个长度为NN的数,SiS_i表示这个数的第i位是什么,现在题目给出了MM个约束,每个约束为lx,rx,ly,rylx,rx,ly,ry,表示这个数的子串S[lx...rx]S[lx...rx]等于另一个子串S[ly...ry]S[ly...ry]。问满足题目约束的,长度为NN的数有多少个。N≤105N \leq 10^5 M≤105M\leq 10^5解题思路一个很显然但是会T的做法就是原创 2016-07-16 22:31:53 · 823 阅读 · 0 评论 -
JZOJ4588. 【NOI2016模拟7.7】冷战 + 按秩合并讲解
题目大意给定一副NN个点的图。动态的往图中加边。现在有两种操作,每种操作读入三个数Ord,u,vOrd,u,v: Ord=0Ord = 0 : 在u,vu,v间连一条双向边 Ord=1Ord = 1 : 询问u,vu,v最早在什么时候联通。N,M <= 10510^5解题思路对于维护联通块的问题,我们可以用并查集来维护,实际上并查集就是维护了一颗树,如果我们用按秩合并的话树的深度就是O(LogN原创 2016-07-30 20:37:39 · 853 阅读 · 0 评论 -
CF 319E Ping-Pong 区间的并查集合并
题目大意定义区间(a,b)(a,b)能走到区间(c,d)(c,d)的条件是c<a<dc<a<d或c<b<dc<b<d。 现在有两种操作: Ord=1:Ord = 1:新加入一个区间(a,b)(a,b)(后加入的区间保证比新加入的区间长) Ord=2Ord = 2:询问从第aa个区间能否走到第bb个区间。 现在有MM个操作,对于第二个操作输出YESYES或NONO。M≤105M \leq 1原创 2016-08-22 19:02:10 · 2097 阅读 · 0 评论 -
JZOJ4739 【雅礼联考GDOI2017模拟9.2】Ztxz16学图论 莫队加并查集
题目大意给定NN个点,MM条无向边,QQ个询问,每个询问给定L,RL, R,问连上第LL~RR条边后,图中有多少联通块(询问之间互不影响)。N,M,Q≤2∗105N,M,Q \leq 2 * 10^5解题思路这种每次询问一个区间的问题一般都可以样莫队在O(QM−−√)O(Q\sqrt M)的时间得出答案。但是这题维护的是联通块,而联通块的问题通常是用并查集来做,但是并查及不能支持撤销操纵,那么我们就原创 2016-09-03 12:49:04 · 1402 阅读 · 0 评论 -
JZOJ4769 【GDOI2017模拟9.9】graph CDQ分治+用按秩合并维护带撤销的并查集(BZOJ 4025)
题目大意现在有NN个点,MM个操作,对于每个操作有两种情况 1. Ord=1Ord = 1:读入u,vu,v表示连接u,vu,v。 2. Ord=0Ord = 0:读入uu表示删除第uu次连接的边。 对于每次操作,如果当前是一幅二分图则输出YESYES,否则输出NONO。N,M≤3∗105N,M\leq 3*10^5解题思路我们先考虑没有删除的情况,判断当前的图是不是一个二分图就相当与判断图中原创 2016-09-10 22:12:03 · 2215 阅读 · 0 评论 -
JZOJ4708. 【NOIP2016提高A组模拟8.20】奇洛金卡达 倒着做的思想+并查集维护
题目大意给定一个长度小于等于kk的字符串和qq,表示现在有qq个操作,每个操作给定两个参数li,ril_i,r_i表示把现在的字符串第lil_i到rir_i把其中编号为奇数的按顺序写下来,再在后面把编号为偶数的按顺序写下来,最后把写出的新字符串加在区间后面。 一下为两个例子: 1、s1s2s3s4s5s6s7li=3ri=5操作后变成:s1s2s3s4s5s3s5s4s6s71、s_1s_2s_原创 2016-10-18 18:33:44 · 1588 阅读 · 0 评论 -
CodeChef March Challenge 2017 题解
CC XENTASK由于要交替选,所以要不第一个人选位置为奇数的数,第二个人选位置为偶数的数,要不第一个人选位置为偶数的数,第二个人选位置为奇数的数。取最小值即可。#include <cstring>#include <cstdio>#include <algorithm>using namespace std;int n, sum[2][2];void solve() { memset原创 2017-03-13 20:26:30 · 1358 阅读 · 0 评论