[NFLSPC #6] 等差数列
考虑枚举公差
贪心的想,我们希望的等差数列是一条直线,而增加的数最少就相当于让直线最低且任意点不低过原序列。扫一遍序列,动态维护当先最少需要增加的数
得到结论,令
为什么?考虑直线变斜的过程,我们称完全贴合原序列的点为支点,那么不难发现支点是逐渐后移的。又因为斜度的增加,支点前的点贡献一定单调不减,支点后一定单调不增。所以支点前总贡献不降,支点后总共献不增。又因为
套上三分即可。
讲得比较抽象。
考虑枚举公差
贪心的想,我们希望的等差数列是一条直线,而增加的数最少就相当于让直线最低且任意点不低过原序列。扫一遍序列,动态维护当先最少需要增加的数
得到结论,令
为什么?考虑直线变斜的过程,我们称完全贴合原序列的点为支点,那么不难发现支点是逐渐后移的。又因为斜度的增加,支点前的点贡献一定单调不减,支点后一定单调不增。所以支点前总贡献不降,支点后总共献不增。又因为
套上三分即可。
讲得比较抽象。