[硫化铂]序排速快
序排速快


题解
首先,对于原题的分割点定义,我们可以实质上是可以把它看成两个点之间的一条线。
当该线的左边数的最大值小于右边数的最小值时该分割点会成立,也就是说,之后不会有任何一个冒泡排序的范围能跨越这道分割线。
事实上,如果我们直接去统计一个分割线的出现时间的话是对计算答案没什么效果,但我们可以发现我们可以从点的层面上计算答案。
一个相当经典的技巧,我们可以计算一个点被进行了冒泡排序多少次。
显然,当一个点两边的分割线都出现时,它的位置就已经被固定了,今后也不会再参与任何一次冒泡排序,对答案产生任何的贡献了。而再此前,它是会参与冒泡排序的。
我们考虑计算一个分割线会经过几次冒泡排序消失。
不妨记 p i p_i

浙公网安备 33010602011771号