#8323. 徐老师的极差序列
0
徐老师的极差序列
文件读写
本题使用文件输入输出,请在程序开头加入:
freopen("minmax.in", "r", stdin);
freopen("minmax.out", "w", stdout);
题目描述
徐老师认为一个序列的极差能够代表这个序列数据的离散程度
极差是指这个序列中最大值减最小值的结果(如果序列只有一个元素,则极差为 )
现在徐老师有一个包含 个数字的序列
他希望将这 个数字的序列切割成 段,每段至少包含 个数字,使得这 段序列的极差之和最小
但是这个问题过于简单了,所以徐老师决定强化一下问题,他结合了最近学习的 在线 概念,提出了动态询问
徐老师会在给定序列后,依次给出 次操作,操作格式如下:
-
0 x表示将 修改为 ,即进行 的赋值 -
1 x表示提出一次询问,询问将当前这个序列切割成 段(每段至少包含 个数字)后,这 段序列的极差之和最小是多少
现在徐老师想请你来挑战一下这道题目
P.S. 由于这个问题可能很难,所以徐老师保证给定的序列 一定是一个 不增序列,即对于任意两个相邻的数字 和 满足
输入格式
输入第一行包含两个整数 ,表示序列长度和操作次数。
输入第二行包含 个整数,表示序列 。
接下来 行,每行包含两个整数表示一次操作,操作格式如题所述
输出格式
对于每次询问,输出一个整数表示答案
数据范围
对于 的数据保证:。
对于 的数据保证:。
另有 的数据保证:
对于 的数据保证: 。
特别的,对于操作 0 x 保证 ,对于操作 1 x 保证
5 3
30 20 18 13 2
1 2
0 3
1 3
17
7
样例解释1
对于第一次询问,原序列为 ,切割成 和 可以得到最小的极差之和
对于第一次询问,原序列为 ,切割成 和 可以得到最小的极差之和
相关
在下列比赛中: