AT_arc203_d.[ARC203D] Insert XOR

省选/NOI-

通过率:0%

AC君温馨提醒

该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

有一个由 00 和 11 组成的长度为 NN 的整数序列 A=(A1,A2,…,AN)A=(A_1,A_2,\dots,A_N)。现在有 QQ 个查询。第 qq 个查询如下:

  • 给定一个 11 到 NN 之间的整数 iqi_q。将 AiqA_{i_q} 的值从 00 变为 11,或从 11 变为 00。

每处理完一个查询后,请回答以下问题:

考虑所有满足下述条件的 00 和 11 组成的数列 B=(B1,B2,…,B∣B∣)B=(B_1,B_2,\dots,B_{|B|}):

  • 可以对 BB 进行任意次如下操作,使其变为序列 AA:
    • 选择一个 11 到 ∣B∣−1|B|-1 之间的整数 ii。
    • 在 BiB_i 和 Bi+1B_{i+1} 之间插入 Bi⊕Bi+1B_i\oplus B_{i+1}。

总是存在满足条件的 BB。请输出所有可能的 ∣B∣|B| 的最小值。

输入格式

输入按以下格式从标准输入读入:

NN A1A_1 A2A_2 …\dots ANA_N QQ i1i_1 i2i_2 ⋮\vdots iQi_Q

输出格式

请输出共 QQ 行答案。第 qq 行输出处理完第 qq 个查询后的问题答案。

输入输出样例

  • 输入#1

    3
    0 0 0
    2
    1
    2

    输出#1

    3
    2
  • 输入#2

    8
    0 1 0 0 1 1 1 0
    3
    1
    4
    1

    输出#2

    5
    2
    3

说明/提示

数据范围

  • 3≤N≤2×1053 \leq N \leq 2 \times 10^5
  • 0≤Ai≤10 \leq A_i \leq 1
  • 1≤Q≤5×1051 \leq Q \leq 5 \times 10^5
  • 1≤iq≤N1 \leq i_q \leq N
  • 输入的所有数均为整数

样例解释 1

当 A=(1,0,0)A=(1,0,0) 时,∣B∣|B| 取 B=(1,0,0)B=(1,0,0) 时最小。
当 A=(1,1,0)A=(1,1,0) 时,∣B∣|B| 取 B=(1,0)B=(1,0) 时最小。

由 ChatGPT 4.1 翻译

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

首页