摘要: 题意 给定$n$个数,每次交换两个数,输出交换后的逆序数。 分析 交换两个数只会影响到对应区间内的逆序数,具体为减少区间$[l+1,r 1]$中比$a[r]$大的数的个数,增加比$a[r]$大的数的个数,减少比大的数的个数,$a[l]$增加比$a[l]$小的数的个数。 转化为单点修改+查询区间值域个 阅读全文
posted @ 2019-09-10 23:00 Keane1998 阅读(171) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个序列,多次询问区间$[l,r]$中满足$min(a[i],a[j])==gcd(a[i],a[j])$的数对$(i,j)$数。 分析 其实就是求区间有倍数关系的数对数。 由于序列是全排列,所有有倍数关系的数对数只有$nlogn$个,因此可以暴力求出所有数对,然后对询问离线,转化为二位偏 阅读全文
posted @ 2019-09-10 13:28 Keane1998 阅读(207) 评论(0) 推荐(0) 编辑
摘要: 题意 给定一个序列,两种操作,单点修改,询问区间$[l,r]$值域在$[x,y]$范围内的连续段个数。 分析 原数组为$a$,构造一个新的数组$b$,$b[i]=(a[i]==a[i 1])?0:a[i]$,这样将连续段转化为左端点的一个数来表示。 询问就可以转化为维护$b$数组,单点修改和询问区间 阅读全文
posted @ 2019-09-10 12:49 Keane1998 阅读(305) 评论(0) 推荐(0) 编辑