传送门 有splay的做法,有树状数组的做法... 最好理解的还是线段树的做法. 一开始我是这样想的,如果移动某一个人,只有当前行和最后一列会受到影响,感觉就像是个线段树,树状数组什么的. 然而接下来就想歪了,把一个人移到后面,等于把后面的整体往前移一格,gg 正确思路是权值线段树,如果一个数被移走,相当于这个数的个数-1,然后把它变成了m+1,放到后面. 移动第x行第y个人其实就是求第x行的第y大. 这样,每一行和最后一列建一棵线段树,然而超空间. 所以需要动态开点,因为总共只移动3*10^5…