CF2049F.MEX OR Mania
省选/NOI-
通过率:0%
AC君温馨提醒
该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
我们称一个整数序列 $ b_1, b_2, \ldots, b_n $ 为「好的」,如果满足以下条件:mex(b1,b2,…,bn)−(b1∣b2∣…∣bn)=1。这里,mex(c) 指的是集合 c 中最小的未出现非负整数,而 ∣ 表示按位或运算。
Shohag 有一个整数序列 $ a_1, a_2, \ldots, a_n $。他会对序列 a 进行 q 次更新操作:
- 对于给定的 i 和 x,将 ai 增加 x。
每次更新后,需要你帮他找出序列 a 中最长的「好的」子数组长度。
输入格式
输入包含多个测试用例。第一行是测试用例数量 t(1 ≤ t ≤ 10,000)。每个测试用例包括以下内容:
- 第一行包含两个整数 n 和 q(1 ≤ n,q ≤ 100,000),分别表示序列的长度和更新操作的次数。
- 第二行包含 n 个整数 a1,a2,…,an(0 ≤ ai ≤ n)。
- 接下来的 q 行中,每行描述一个更新操作:
- 两个整数 i 和 x(1 ≤ i,x ≤ n),表示将 ai 增加 x。
保证所有测试用例中所有序列的元素个数之和不超过 100,000,所有更新操作的总数也不超过 100,000。
输出格式
对于每个测试用例,输出 q 行,每行是对应更新后序列中最长的「好的」子数组的长度。
输入输出样例
输入#1
2 6 3 0 0 1 0 1 0 6 1 3 2 6 3 3 1 1 3 1 1 1
输出#1
6 3 2 0
说明/提示
例如,在第一个测试用例中,第一次更新后,数组变为 [0,0,1,0,1,1],此时整个数组都是「好的」,因为 mex([0,0,1,0,1,1])−(0∣0∣1∣0∣1∣1)=2−1=1。
第二次更新后,数组变为 [0,0,3,0,1,1],最长的「好的」子数组是 [0,1,1]。
第三次更新后,数组变为 [0,0,3,0,1,4],最长的「好的」子数组是 [0,0] 和 [0,1]。
本翻译由 AI 自动生成
输入解题思路,AI测评打分。不知道怎么写?