题意 给定$n$个数,每次交换两个数,输出交换后的逆序数。 分析 交换两个数只会影响到对应区间内的逆序数,具体为减少区间$[l+1,r 1]$中比$a[r]$大的数的个数,增加比$a[r]$大的数的个数,减少比大的数的个数,$a[l]$增加比$a[l]$小的数的个数。 转化为单点修改+查询区间值域个 ...
分类:
其他好文 时间:
2019-09-10 23:28:40
阅读次数:
72
和动态逆序对有些类似 这题既可以以时间为第一维 也可以以x轴维第一维度 具体视题目而定 cdq分治只能求点对之间的影响 如果要变成整个序列的情况 那么可以用前缀和 一开始的原序列的id设置成0即可 #include<bits/stdc++.h> using namespace std; #defin ...
分类:
其他好文 时间:
2019-09-06 18:56:02
阅读次数:
90
题面 "传送门" Sol 树状数组套线段树模板题 ...
分类:
其他好文 时间:
2018-04-04 23:37:45
阅读次数:
205
[BZOJ][1] [Luogu][2] 题意:每次交换序列中的两个数,然后求逆序对数 sol 看一眼这不是动态逆序对嘛。 所以就是一个裸的树套树呀 树状数组套线段树 修改的时候需要讨论一波交换的两个数的大小关系,设交换的两个位置是$a,b$且$a... 2、$h_a首先交换后$a,b$会贡献一对逆 ...
分类:
其他好文 时间:
2018-01-20 13:59:59
阅读次数:
121
这个题就是动态偏序对,每次操作做两个删除两个插入就好了。 ...
分类:
其他好文 时间:
2017-06-13 20:37:50
阅读次数:
186
Description 排排坐,吃果果,生果甜嗦嗦,大家笑呵呵。你一个,我一个,大的分给你,小的留给我,吃完果果唱支歌,大家乐和和。红星幼儿园的小朋友们排起了长长地队伍,准备吃果果。不过因为小朋友们的身高有所区别,排成的队伍高低错乱,极不美观。设第i个小朋友的身高为hi,我们定义一个序列的杂乱程度为 ...
分类:
其他好文 时间:
2017-01-17 00:29:37
阅读次数:
197
题意很明确,也非常经典: 一个支持查询 区间中比k大的数的个数 并且支持单点修改的序列 ——因为题意可以转化为:查询这两个数中比后者大的个数、比后者小的个数、比前者大的个数、比前者小的个数(根据这4个就能算出增加/减少了多少对逆序对)并且把两个数修改掉 于是就出现了 ——来自百度 一个二分就能解决套 ...
分类:
其他好文 时间:
2016-07-07 17:21:33
阅读次数:
220
题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2141 分块加树状数组。 离散化之后,每一个块建一个树状数组。交换x,y,与x左边的数和y右边的数无关,只需处理>x,<y的数。 话说还可以用树套树来写,不过常数太大,比分块加树状数组慢。 1 ...
分类:
其他好文 时间:
2016-05-30 18:32:57
阅读次数:
426
题目大意是在能够改变两个数的位置的情况下计算逆序对数 这因为是动态记录逆序对 本来单纯逆序对只要用树状数组计算即可,但这里因为更新,所以利用TReap树的删点和增加点来进行更新 大致是把每个树状数组所管理的点都放在对应的Treap树下, 这样x-=lowbit(x)下来,正好访问到是所有比他小范围下 ...
分类:
编程语言 时间:
2016-04-08 21:21:24
阅读次数:
311
树套树。。我写了线段树套treap= =外层线段树表示各段区间,每段区间内按权值大小开个treap 设数列为map[],一开始求出逆序对个数。 每次假设交换l和r这两位置的数,答案就要减去[l+r,r-1]中比map[l]小的数的个数,再减去[l+1,r-1]中比map[r]大的数的个数, ...
分类:
其他好文 时间:
2016-01-15 15:59:44
阅读次数:
176