之前发过一篇,可惜杳无音信。。。 今天看到有一个人发了个帖子请求过机翻,突然想起自己以前很用心翻译了一篇,想看看能不能有人看见QAQ
本篇帖子进行了一些订正,修正了翻译错误。本人没有玩过原,剧情错翻请见谅。
T398162 [ICPC2021 Nanjing R] Klee in Solitary Confinement
1秒,256MB限制
自从旅行者来了以后,蒙德城的人们突然对计算机编程、算法产生了极大兴趣,其中包括西风骑士团的火花骑士——可莉。

由于再次被琴关了禁闭,可莉决定去费一些时间研究著名的莫队算法,在没有改进的情况下,可以以 O(n1.5) 的时间复杂度解决一些范围查询问题。
为了检查可莉是否真的掌握了该算法(或者其实为了是检查她是否在偷偷制造别的炸弹),琴给了她一个问题,包括一个长度为n的整数序列 a1 , a2 ,···, an ,以及一些要求她在连续子序列 ali , ali+1 ,···, ari 中找到众数的区间 [li,ri] ——众数指的是序列中最普遍的数(也就是出现最多的数字)。
在莫队算法的帮助下,可莉不费吹灰之力就解决了这个问题。但是,她又想到了别的问题。给定一个长度为 n 的整数序列 a1 , a2 ,···, an 以及一个整数 k ,你可以执行最多一次以下操作:选择两个满足 1≤l≤r≤n 的整数 l 和 r ,然后给 l≤i≤r 范围内的每个 ai 都加上 k 。注意,你也可以不执行操作。计算你以最佳方案执行(或不执行)操作后整个序列众数的最大出现次数。
每个测试文件中只有一个测试用例。
输入的第一行包含两个整数 n 和 k (1≤n≤106,−106≤k≤106) ,表示整数序列的长度和操作要相加的数。
输入的第二行包含 n 个整数 a1 , a2 ,···, an (−106≤ai≤106) ,表示最初的序列。
输出一行,包含一个整数,表示在执行(或不执行)操作之后整个序列的众数的最大出现次数。
见原题
在第一个测试样例中,选择 l=1 以及 r=2 。然后我们将会得到序列 { 4,4,4,4,4 }。很明显,众数是出现了 5 次的 4 。
在第二个测试样例中,选择 l=4 以及 r=6 。然后我们将会得到序列 { 3,2,3,3,3,3,3 }。众数是出现了 6 次的 3 。
在第三个测试样例中,选择不去执行操作 。众数是同样出现了 3 次的 1 和 −2 。