bzoj3295专题

[BZOJ3295] [Cqoi2011]动态逆序对 CDQ分治

CDQ跑的比分治快得多 首先 我们可以把每一个点看成一个三元组(x, y, z) x 表示它当前的值 y 表示的在序列中的编号 z 表示它的时间 即第z次操作后的这个点 所以 如果某个点P在平面上的左上方有点(值小于P并且位置在P之后) 后者右下方(恰好相反)的地方有点 就会形成一个逆序对 在一开始我们很容易求出每一个点形成的逆序对总数 每次删除的时候从ans中减去 然而 在CDQ分治的过