CF2057D.Gifts Order
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
“T-Generation” 队计划采购一些毛衣以满足多种需求,他们拥有 n 件毛衣编号从 1 至 n。第 i 件毛衣的尺寸为 ai。现在,他们需要选出某段连续的毛衣送去参加奥林匹克竞赛。这些毛衣必须尽可能适合更多的人,同时又不能选择得太多。
他们需要选择两个下标 l 和 r(1≤l≤r≤n),使便利性最大化。便利性定义为 max(al,al+1,…,ar)−min(al,al+1,…,ar)−(r−l),也就是尺寸的范围减去所选毛衣数量。
考虑到毛衣的尺寸可能会发生变化,总共有 q 次这样的变动。每次变化中,第 p 件毛衣的尺寸变为 x。
请帮助 “T-Generation” 团队计算出在所有可能的 (l,r) 对中,初次和每次尺寸调整后的最大便利性。
输入格式
输入包含多个测试用例。第一行是一个整数 t(1≤t≤104)表示测试用例的数量。随后是每个测试用例的描述。
每个测试用例的第一行包含两个整数 n 和 q(1≤n,q≤2⋅105),分别表示毛衣总数和尺寸变化的次数。
接下来的第二行包括 n 个整数 a1,a2,…,an(1≤ai≤109),表示每件毛衣的尺寸。
此后 q 行,每行包含两个整数 p 和 x(1≤p≤n, 1≤x≤109),表示一次尺寸变化,第 p 件毛衣的尺寸变为 x。
保证所有测试用例中所有 n 的总和以及所有 q 的总和不超过 2⋅105。
输出格式
对于每个测试用例,输出在操作前以及每次尺寸变化后,所有可能的 (l,r) 对中最大便利性。
输入输出样例
输入#1
3 2 2 1 10 1 10 2 2 5 3 1 2 3 4 5 3 7 1 4 5 2 8 5 7 4 2 4 8 2 1 4 5 4 1 10 3 2 8 11 7 7
输出#1
8 0 7 0 4 4 4 5 3 6 6 9 7
说明/提示
来看第一个测试用例的情况:
- 在没有变化之前,可以选取所有毛衣,此时便利性等于 max(a1,a2)−min(a1,a2)−(2−1)=10−1−1=8。
- 第一次查询后,两件毛衣的尺寸都变为 10,只能选取第一件毛衣,此时便利性等于 10−10−0=0。
- 第二次查询后,第一件毛衣的尺寸为 10,第二件为 2,可以选取所有毛衣,便利性为 max(a1,a2)−min(a1,a2)−(2−1)=10−2−1=7。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?