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\operatorname{mex}(b_1, b_2, \ldots, b_n) - (b_1 | b_2 | \ldots | b_n) = 1。这里,mex(c)⁡\operatorname{mex(c)} 指的是集合 cc 中最小的未出现非负整数,而 ∣| 表示按位或运算。

Shohag 有一个整数序列 $ a_1, a_2, \ldots, a_n $。他会对序列 aa 进行 qq 次更新操作:

  • 对于给定的 ii 和 xx,将 aia_i 增加 xx。

每次更新后,需要你帮他找出序列 aa 中最长的「好的」子数组长度。

输入格式

输入包含多个测试用例。第一行是测试用例数量 tt(1 ≤ tt ≤ 10,000)。每个测试用例包括以下内容:

  • 第一行包含两个整数 nn 和 qq(1 ≤ n,qn, q ≤ 100,000),分别表示序列的长度和更新操作的次数。
  • 第二行包含 nn 个整数 a1,a2,…,ana_1, a_2, \ldots, a_n(0 ≤ aia_i ≤ nn)。
  • 接下来的 qq 行中,每行描述一个更新操作:
    • 两个整数 ii 和 xx(1 ≤ i,xi, x ≤ nn),表示将 aia_i 增加 xx。

保证所有测试用例中所有序列的元素个数之和不超过 100,000,所有更新操作的总数也不超过 100,000。

输出格式

对于每个测试用例,输出 qq 行,每行是对应更新后序列中最长的「好的」子数组的长度。

输入输出样例

  • 输入#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][0, 0, 1, 0, 1, 1],此时整个数组都是「好的」,因为 mex⁡([0,0,1,0,1,1])−(0∣0∣1∣0∣1∣1)=2−1=1\operatorname{mex}([0, 0, 1, 0, 1, 1]) - (0 | 0 | 1 | 0 | 1 | 1) = 2 - 1 = 1。

第二次更新后,数组变为 [0,0,3,0,1,1][0, 0, 3, 0, 1, 1],最长的「好的」子数组是 [0,1,1][0, 1, 1]。

第三次更新后,数组变为 [0,0,3,0,1,4][0, 0, 3, 0, 1, 4],最长的「好的」子数组是 [0,0][0, 0] 和 [0,1][0, 1]。

本翻译由 AI 自动生成

输入解题思路,AI测评打分。不知道怎么写?

首页