提交翻译(求过)
查看原帖
提交翻译(求过)
857132
xiaoyun233楼主2023/11/16 19:01

T398162 [ICPC2021 Nanjing R] Klee in Solitary Confinement

翻译(by xiaoyun233)


[ICPC2021 南京 R] 禁闭中的可莉

题目背景

1秒,256MB限制

题目描述

自从旅行者来了以后,蒙德城的人们突然对计算机编程和算法产生了极大兴趣,包括西风骑士团的火花骑士——可莉。

因为再次被琴关了禁闭,可莉决定费时间去研究著名的莫队算法,在没有改进的情况下,可以以 O(n1.5)O (n^{1.5}) 的时间复杂度解决一些范围查询问题。

为了检查可莉是否真的掌握了该算法(或者其实是检查她是否在偷偷制造别的炸弹),琴给了她一个问题,包含一个长度为nn的整数序列 a1a_1 , a2a_2 ,···, ana_n ,以及一些要求她在连续子序列 alia_{l_i} , ali+1a_{l_i+1} ,···, aria_{r_i} 中找到模数的区间 [li,ri][l_i,r_i] 。模数指的是序列中最普遍的数(也就是出现最多的数字)。

在莫队算法的帮助下,可莉不费吹灰之力就解决了这个问题。但是另外的问题进入了她的脑海。给定一个长度为 nn 的整数序列 a1a_1 , a2a_2 ,···, ana_n 和整数 kk ,你可以执行最多一次以下操作:选择两个满足 1≤l≤r≤n1 \le l \le r \le n 的整数 ll 和 rr ,然后给 l≤i≤rl\le i \le r 范围内的每个 aia_i 都加上 kk 。要注意的是也可以不执行操作。计算你以最佳方案执行(或不执行)操作后整个序列的模数的最大出现次数。

输入格式

每个测试文件中只有一个测试用例。

输入的第一行包含两个整数 nn 和 kk (1≤n≤1061 \le n \le 10^6,−106≤k≤106-10^6\le k \le 10^6) 表示整数序列的长度和操作的相加数。

输入的第二行包含 nn 个整数 a1a_1 , a2a_2 ,···, ana_n (−106≤ai≤106-10^6\le a_i \le 10^6) 表示最初的序列。

输出格式

输出一行,包含一个整数,表示在执行(或不执行)操作之后整个序列的模数的最大出现次数。

输入输出样例

见原题

说明/提示

在第一个测试样例中,选择 l=1l=1 以及 r=2r=2 。然后我们将会得到序列 { 4,4,4,4,44,4,4,4,4 }。很明显,模数是出现了 55 次的 44 。

在第二个测试样例中,选择 l=4l=4 以及 r=6r=6 。然后我们将会得到序列 { 3,2,3,3,3,3,33,2,3,3,3,3,3 }。模数是出现了 66 次的 33 。

在第三个测试样例中,选择不去执行操作 。模数是同样出现了 33 次的 11 和 −2-2 。

2023/11/16 19:01
加载中...