纪念一道傻逼题。
排列$p_i$,从中分割2堆,开始移动元素使得左边元素小于右边,移动代价为$a_i$
移动结束后代价变成$1-x$,$x+1-n$。这样代价为$ans_x$答案就是$\sum_{i=0}^{n} ans_x$。假设都在右边。
枚举分割点$i$,$x<=p[i],p[i]一开始在左边,就需要移动代价为a_i$,$x>p[i],p[i]不需要移动,就多余的移动-a_i$
代码
1 |
|
纪念一道傻逼题。
排列$p_i$,从中分割2堆,开始移动元素使得左边元素小于右边,移动代价为$a_i$
移动结束后代价变成$1-x$,$x+1-n$。这样代价为$ans_x$答案就是$\sum_{i=0}^{n} ans_x$。假设都在右边。
枚举分割点$i$,$x<=p[i],p[i]一开始在左边,就需要移动代价为a_i$,$x>p[i],p[i]不需要移动,就多余的移动-a_i$
1 | #include <iostream> |