\(\color{#0066ff}{ 题目描述 }\) 给定整数 \(n\) 和两个 \(1,\dots,n\) 的排列 \(a,b\). \(m\) 个操作,操作有两种: \(1\ l_a\ r_a\ l_b\ r_b\),设 \(a\) 的 \([l_a;r_a]\) 区间内的元素集合为 \(S_a\),设 \(b\) 的 \([l_b;r_b]\) 区间内的元素集合为 \(S_b\),求 \(\lvert S_a \bigcap S_b \rvert\). \(2\ x\ y\),交换 \…
题意和分析在之前的链接中有:https://www.cnblogs.com/pkgunboat/p/10160741.html 之前补题用三维偏序的cdq的分治A了这道题,但是感觉就算比赛再次遇到类似的题可能写不出cdq的代码...这次算是自己独立A的了... 如果这题不卡常的话,什么树套什么树都可以,为了节省空间以及提高效率,我在外层写一个树状数组,树状数组的每一个节点用pb_ds的红黑树维护(红黑大法好),这样查询效率比较高. 为了方便红黑树的区间操作,每颗树插入1个负无穷,1个正无穷. 代…
题意:给你两个数组a和b,a,b都是一个n的全排列:有两种操作:一种是询问区间在数组a的区间[l1,r1]和数组b的区间[l2,r2]出现了多少相同的数字,另一种是交换数组b中x位置和y位置的数字. 思路:我们可以建立数组b对数组a的映射mp,mp[x]表示数组b中x位置的数在数组a中出现的位置,这样问题转化为了带修改的询问一个矩形内点的个数的问题.想法是树套树,但是这题卡常,很多树套树会被卡掉,介于本辣鸡的代码能力,很容易写丑,所以用CDQ分治. 此问题和三维偏序问题很像(把每个操作的时间看作…
[CF1093E]Intersection of Permutations 题目大意: 给定两个长度为\(n(n\le2\times10^5)\)的排列\(A,B\).\(m(m\le2\times10^5)\)次操作,操作分为以下两种: 询问有多少同时在\(A_{[x,y]}\)和\(B_{[l,r]}\)中出现的数. 交换\(B_x\)与\(B_y\). 思路: 令\(v[a[i]]=i,b[i]=v[b[i]]\),这样询问就变成\([x,y]\)中有多少数在\(B_{[l,r]}\)中出…
3110: [Zjoi2013]K大数查询 Time Limit: 20 Sec  Memory Limit: 512 MBSubmit: 6050  Solved: 2007[Submit][Status][Discuss] Description 有N个位置,M个操作.操作有两种,每次操作如果是1 a b c的形式表示在第a个位置到第b个位置,每个位置加入一个数c如果是2 a b c形式,表示询问从第a个位置到第b个位置,第C大的数是多少. Input 第一行N,M接下来M行,每行形如1 a…
传送门 BZOJ上的题目没有题面-- [样例输入] 3 5 2 4 3 Query 2 2 Modify 1 3 Query 2 2 Modify 1 2 Query 1 1 [样例输出] 2 3 3 这道题稍微分析一下就知道是求一个一个点曼哈顿距离小于k的的范围内的点的个数(把下标看做x,把值看做y).然后我们只需要旋转一下坐标轴就变成了和"Mokia"或"简单题"一样的CDQ分治裸题了,求二维空间前缀和. 首先将询问按x排序,然后开始分治过程,计算左半区间对右半…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 100005 #define maxm 200005 #define maxk 2000005 using namespace std; ],ans[maxn],Ans[maxn],sum[maxn],fa[maxk],size[ma…
#include <iostream> #include <cstdio> #include <cstring> #include <cmath> #include <algorithm> #define maxn 100005 #define maxk 6000005 using namespace std; int n,m,size,num[maxn],pos[maxn],tsum[maxn],t1[maxn],t2[maxn]; typed…
题意: 有n个位置,每个位置可以看做一个集合,现在要求你实现一个数据结构支持以下功能: 1:在a-b的集合中插入一个数 2:询问a-b集合中所有元素的第k大. SOL: 调得火大! 李建说数据结构题能锻炼人,然而我的水平还是太低啊!每次调这种题到最后往往都会变成找不同...日狗! 树套树的第一题,但是是权值线段树套区间线段树,与心中真正的树套树还是有一点差距-----线段树套平衡树(一直打不完..卡死在不知什么地方). 对于权值线段树套区间线段树的想法,我们可以这么来看,先考虑在一个序列上询问第…
感觉树套树是个非常高深的数据结构.从来没写过 #include <iostream> #include <cstdio> #include <algorithm> #include <cstring> #include <vector> #define LL long long using namespace std; ; ; ; struct OPERATOR { LL Type,a,b,c; }Operator[Maxm]; LL Sum[M…