md 空间卡死窝了……
首先用常规方法求出这个序列的逆序对个数,然后每次删除就从答案中减去它对答案的贡献。
问题在于贡献怎么求。
显然,ai 对答案的贡献就是 i−1∑j=1[aj>ai]+n∑j=i+1[aj<ai], 其中 [X] 的意义是若 X 成立则为 1 否则为 0。
那么这个东西就用树套树就好啦! 然后一开始的逆序对个数我也顺便用了树套树。
这里是树状数组套权值线段树。
代码:
1 |
|
md 空间卡死窝了……
首先用常规方法求出这个序列的逆序对个数,然后每次删除就从答案中减去它对答案的贡献。
问题在于贡献怎么求。
显然,ai 对答案的贡献就是 i−1∑j=1[aj>ai]+n∑j=i+1[aj<ai], 其中 [X] 的意义是若 X 成立则为 1 否则为 0。
那么这个东西就用树套树就好啦! 然后一开始的逆序对个数我也顺便用了树套树。
这里是树状数组套权值线段树。
代码:
1 | #include <cstdio> |
Related Issues not found
Please contact @Alpha1022 to initialize the comment