Yet Another Inversions Problem
这道题目肯定是要把逆序对的式子列出来
考虑\((i_1,j_1)\)和\((i_2,j_2)\)
若\(i_1=i_2\),那么只需要\(j_1>j_2\),也就是序列\(q\)的逆序对数
若\(i_1≠i_2\),不妨设\(i_2>i_1\),那么有\(p_{i_1}*2^{j_1}>p_{i_2}*2^{j_2}\),即\(2^{j_1-j_2}>\frac{p_{i_2}}{p_{i_1}}\)
我们枚举\(i_2\),先把\(i_2\)固定
如果\(p_{i_1}>p_{i_2}\),那么统计一下在\((p_{i_2}*2^{j},p_{i_2}*2^{j+1}]\)中的\(p_{i_1}\)个数,那么此时\(j_1-j_2\)的范围就可以确定,利用乘法原理即可(一定要注意\(j_1,j_2\)是不会互相影响的)
update 2024.7.10
像这种分块讨论的思想(\(i_1=i_2\)表示在同一块,否则在不同块)可以记住,这里提示也是比较明显了