题意有两个序列 $a,b$ ,可以把 $b$ 中相邻的数交换,使得 $\sum (a_i-b_i)^2$ 最小。问最少要交换几次?题解可以发现最小的情况就是 $a,b$ 中数字的大小顺序相同,所以离散化后建立 $a$ 中大小在 $b$ 的对应关系 $s$ ,求 $s$ 的逆序对个数即可。#include<bits/stdc++.h>
#define ha 99999997
us...
题意给出 $n$ 个数,求逆序对个数。其中 $n\le 500000$ ,每个数 $\le 999,999,999$ 。题解数的范围很大,所以直接用树状数组肯定不行。但事实上我们只关心数之间的顺序,所以排序后用 $\text{ord[]}$ 记录顺序即可。#include<bits/stdc++.h>
#define ll long long
using namespace s...