[CF911D]Inversion Counting】的更多相关文章

题目大意: 给你一个数列,翻转其中一个区间,问每次翻转过后逆序对个数的奇偶性. 思路: 首先树状数组求出一开始的奇偶性,然后考虑每次翻转对答案的贡献. 对于整个区间,我们可以把翻转转化成若干次交换. 也就是交换(l,r),(l+1,r-1)... 总共有(r-l+1)/2次. 考虑每一次交换对答案的影响. 设当前交换的数为(a,b),那么对于a,改变的逆序对数为区间[a,b]大于a的数与小于a的数之差,对于b同理. 由于只要求奇偶性,那么加和减都差不多,所以我们可以都变成加法,那么a和b造成影响…
题目链接:Inversion Counting 题意: 定义数列{ai|i=1,2,...,n}的逆序对如下:对于所有的1≤j<i≤n,若ai<aj,则<i,j>为一个逆序对.于是,对于一个数列a[1..n],给定m次操作.对于每一次操作,给定l,r(1≤l<r≤n),将序列a[l..r]倒置.求倒置后的逆序对的数量的奇偶性. 题解: 假设现在我们有一个序列并翻转这个序列[l,r]区间里面的数.假设某个数的k值是指在这个值后面小于这个数的数的个数,其实我们可以发现对于[1,l…
这是一道看似复杂其实也不简单的思维题. 其实思路很明显. 因为这道题的数据范围比较大,有1e5的询问,如果暴力(像我考场上那样打平衡树)的话可以做到$mnlogn$. 但那样也是稳T. 经过思考之后我们可以发现,这道题必定要使用m的解法,也就是对于每一个询问$O1$求解.(总不可能$mlogn$求解) 那么怎么$O1$呢? 众所周知,$O1$算法自古以来就和数学脱不开关系. 而本题中有哪些量可以扯上来搞一搞呢? 具体的值?肯定不现实. 那也就只剩下区间长度了. 针对区间长度进行考察之后,我们可以…
题目 传送门:QWQ 分析 思维要求比较高. 首先我们要把原图的逆序对q算出来. 这个树状数组或归并排序都ok(树状数组不用离散化好评) 那么翻转$[l,r]$中的数怎么做呢? 暴力过不了,我试过了. 设$ t=r-l+1 $即为区间长度 那么区间数对数量(看好是所有数对,不是逆序对)的数量就是$ k =\frac{n\times(n-1)}{2} $ 方法是我们判断一下数量k的奇偶性,如果是奇数的,那么就把$ q $的奇偶性变一变. 然后判断q的奇偶性输出就行. 为什么这样是对的呢? 首先翻转…
[链接] 我是链接,点我呀:) [题意] 在这里输入题意 [题解] 排列中交换任意两个数字. 排列的逆序对个数的奇偶性会发生变化. 翻转这个过程其实就是len/2对数字发生交换. 交换了偶数次的话,不变,否则奇偶性发生改变. 先暴力求出一开始的逆序对个数就好 [代码] #include <bits/stdc++.h> using namespace std; const int N = 1500; int n,a[N+10],cnt,now,m; void out(int x){ if (x=…
A. Nearest Minimums time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output You are given an array of n integer numbers a0, a1, ..., an - 1. Find the distance between two closest (nearest) minimum…
B. Two Cakes 传送门:http://codeforces.com/contest/911/problem/B 本题是一个数学问题. 有a个Ⅰ类球,b个Ⅱ类球:有n个盒子.将球放入盒子中,要求: ①所有的球均被放入盒子中: ②每一个盒子中至少有一个球: ③一个盒子里至多只能有一类球. 设将所有的球放入盒子后,每个盒子里至少有x个球.求x的最大值. 由上述规则可知,一个盒子或放入Ⅰ类球,或放入Ⅱ类球.设放入Ⅰ类球的盒子数为i,放入Ⅱ类球的盒子数为j,则:i+j=n. 于是,为使盒子中放入…
Nearest Minimums 相同的数里最小的数里的最小距离 Solution Two Cakes Solution Three Garlands 瞎比试 Solution Inversion Counting 先算出来最初逆序对个数,对于每次选择,如果选出的区间里数对个数为偶数个,则其中正序对和逆序对个数可能分别为(奇数+奇数)或(偶数+偶数),此时总的逆序对奇偶性不变:如果选出的区间里数对个数为奇数个,则其中正序对和逆序对个数可能分别为(奇数+偶数)或(偶数+奇数),此时总的逆序对奇偶性…
D. Inversion Counting time limit per test 2 seconds memory limit per test 256 megabytes input standard input output standard output A permutation of size n is an array of size n such that each integer from 1 to n occurs exactly once in this array. An…
题意:求[a,b]区间内的数字中正序对的个数. 具体思路参考: https://blog.csdn.net/weixin_43135318/article/details/88061396 https://www.cnblogs.com/asdfsag/p/11278519.html 在此基础上维护一下每个状态中大于每个数字的数字出现的次数即可. #include<bits/stdc++.h> using namespace std; typedef long long ll; ; ll bi…