A59729.[NOI2025] 三目运算符

提高+/省选-

NOI

通过率:0%

时间限制:2.00s

内存限制:512MB

题目描述

对于一个长度为 nn (n3n \geq 3) 的 01 串 S=s1snS = s_1 \ldots s_n,定义变换 T=f(S)=t1tnT = f(S) = t_1 \ldots t_n 如下:

ti={si,i2,si,i3 且 si2=0,si1,i3 且 si2=1.t_i = \begin{cases} s_i, & i \leq 2, \\ s_i, & i \geq 3 \text{ 且 } s_{i-2} = 0, \\ s_{i-1}, & i \geq 3 \text{ 且 } s_{i-2} = 1. \end{cases}

定义变换 ff不动点 如下:若 01 串 TT 满足 f(T)=Tf(T) = T,则称 TT 为变换 ff 的不动点。

fk(S)f^k(S)SS 经过 kk 次变换得到的串。特别地,记 f0(S)=Sf^0(S) = S。求最小的自然数 kk,使得 fk(S)f^k(S) 为变换 ff 的不动点,即满足 fk+1(S)=fk(S)f^{k+1}(S) = f^k(S) 的最小的自然数 kk。可以证明,一定存在自然数 kk 使得 fk(S)f^k(S) 为变换 ff 的不动点。

小 Z 觉得这个问题过于简单,因此他增加了 qq 次修改操作。第 ii (1iq1 \leq i \leq q) 次修改会给定两个正整数 li,ril_i, r_i (1lirin1 \leq l_i \leq r_i \leq n),然后将区间 [li,ri][l_i, r_i] 内的所有原有的 0 替换为 1,所有原有的 1 替换为 0。你需要对初始时及每次修改后的字符串 SS,求出最小的自然数 kk,使得 fk(S)f^k(S) 为变换 ff 的不动点。

输入格式

本题包含多组测试数据。

输入的第一行包含两个非负整数 c,tc, t,分别表示测试点编号与测试数据组数。c=0c = 0 表示该测试点为样例。

接下来依次输入每组测试数据,对于每组测试数据:

第一行包含两个正整数 n,qn, q,分别表示 SS 的长度和修改次数。

第二行包含一个长度为 nn 的 01 串 S=s1snS = s_1 \ldots s_n,表示初始时的字符串。

i+2i + 2 (1iq1 \leq i \leq q) 行包含两个正整数 li,ril_i, r_i,表示一次修改操作。

输出格式

对于每组测试数据,设初始时的答案为 k0k_0,第 ii (1iq1 \leq i \leq q) 次修改后的答案为 kik_i,输出一行一个正整数,表示 i=0q((i+1)×ki)\oplus_{i=0}^{q} ((i + 1) \times k_i),其中 \oplus 表示 二进制按位异或

输入输出样例

  • 输入#1

    0 2
    5 2
    11010
    3 3
    2 2
    7 3
    1010100
    7 7
    2 4
    1 2

    输出#1

    2
    4

说明/提示

说明/提示

该样例共包含两组测试数据。

对于第一组测试数据:

  • 初始时,S=11010S = 11010f(S)=11100f(S) = 11100f2(S)=11110f^2(S) = 11110f3(S)=f4(S)=11111f^3(S) = f^4(S) = 11111,因此 k0=3k_0 = 3
  • 第一次操作后,S=11110S = 11110f(S)=f2(S)=11111f(S) = f^2(S) = 11111,因此 k1=1k_1 = 1
  • 第二次操作后,S=10110S = 10110f(S)=f2(S)=10011f(S) = f^2(S) = 10011,因此 k2=1k_2 = 1

故答案为 i=0q((i+1)×ki)=(1×3)(2×1)(3×1)=323=2\bigoplus_{i=0}^{q} ((i+1) \times k_i) = (1 \times 3) \oplus (2 \times 1) \oplus (3 \times 1) = 3 \oplus 2 \oplus 3 = 2

对于第二组测试数据:

  • 初始时,S=1010100S = 1010100k0=1k_0 = 1
  • 第一次操作后,S=1010101S = 1010101k1=1k_1 = 1
  • 第二次操作后,S=1101101S = 1101101k2=5k_2 = 5
  • 第三次操作后,S=0001101S = 0001101k3=2k_3 = 2

故答案为 i=0q((i+1)×ki)=(1×1)(2×1)(3×5)(4×2)=4\bigoplus_{i=0}^{q} ((i+1) \times k_i) = (1 \times 1) \oplus (2 \times 1) \oplus (3 \times 5) \oplus (4 \times 2) = 4

【样例 2】

该样例满足测试点 1 ~ 3 的约束条件。

【样例 3】

该样例满足测试点 4 ~ 6 的约束条件。

【样例 4】

该样例满足测试点 13、14 的约束条件。

【样例 5】

该样例满足测试点 17 ~ 19 的约束条件。

【数据范围】

N,QN, Q 分别为单个测试点内所有测试数据的 n,qn, q 的和。对于所有测试数据,保证:

  • 1t51 \leq t \leq 5;
  • 3n4×1053 \leq n \leq 4 \times 10^5, N8×105N \leq 8 \times 10^5;
  • 1q4×1051 \leq q \leq 4 \times 10^5, Q8×105Q \leq 8 \times 10^5;
  • 对于所有 1in1 \leq i \leq n, 均有 si{0,1}s_i \in \{0, 1\};
  • 对于所有 1iq1 \leq i \leq q, 均有 1lirin1 \leq l_i \leq r_i \leq n
测试点编号 n,qn, q \leq N,QN, Q \leq 特殊性质
131 \sim 3 200200 10310^3 A
464 \sim 6 200200 10310^3
7,87, 8 5,0005,000 10410^4 A
9119 \sim 11 5,0005,000 10410^4
1212 10510^5 2×1052 \times 10^5 A
13,1413, 14 10510^5 2×1052 \times 10^5 B
15,1615, 16 10510^5 2×1052 \times 10^5
171917 \sim 19 4×1054 \times 10^5 8×1058 \times 10^5 C
2020 4×1054 \times 10^5 8×1058 \times 10^5

特殊性质 A: 保证初始时及每次修改后,存在整数 p[2,n]p \in [2, n] 满足 s1=s2==sp=1s_1 = s_2 = \cdots = s_p = 1sp+1==sn=0s_{p+1} = \cdots = s_n = 0

特殊性质 B: 保证对于所有 1iq1 \leq i \leq q, 均有 li=1l_i = 1, ri=nr_i = n

特殊性质 C: 保证对于所有 1iq1 \leq i \leq q, 均有 li=1l_i = 1, 且 r1r2rqr_1 \leq r_2 \leq \cdots \leq r_q

首页