p3460 sol(POI2007 TET)

· · 题解

由于本题难以设计状态,考虑贪心。

考虑从低往顶扫,每次遇到前面有的就暴力消掉,并动态更新其他位置的距离,使用树状数组。

考虑证明这个贪心。重编号节点,每个节点按照其从低到顶出现的顺序从小到大编号,那么每次操作都可以消除一个逆序对。

由于将两个数完全消除不会导致去除任何的逆序对,所以每次操作不会有浪费,所以是最优的。