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\)表示在同一块,否则在不同块)可以记住,这里提示也是比较明显了

posted @ 2024-02-24 18:01  最爱丁珰  阅读(1)  评论(0编辑  收藏  举报