树状数组模板题,即用树状数组来统计能量逆序总数
对于位置i,我们只需要去考虑左边比它能量值大的粒子个数,然后累加,即为整个序列的能量逆序总数,记为res
在一个物理实验中,有 n 个粒子排成一列,依次编号为 1 到 n。每个粒子具有一个初始能量值,这些能量值互不相同,且恰好覆盖了 1 到 n 的所有整数。
我们定义一对“能量逆序”:对于编号 i<j,如果第 i 个粒子的能量值大于第 j 个粒子的能量值,则称 (i,j) 构成一个能量逆序。
现在,科学家可以对任意一个粒子执行“反相操作”,将其能量值变为原来的相反数(即乘以 −1)。对于一个给定的编号 i,反相第 i 个粒子后,整个序列的能量逆序总数会发生变化。请你对于每个 i (i=1,2,…,n),计算反相操作后整个序列的能量逆序总数。
粒子个数 n 满足 n≤2imes105。初始能量值均为整数,且恰好包含 1 到 n 的每个整数各一次。
By signing up a CodeFun2000 universal account, you can submit code and join discussions in all online judging services provided by us.