A59729.[NOI2025] 三目运算符

提高+/省选-

NOI

通过率:0%

时间限制:2.00s

内存限制:512MB

题目描述

对于一个长度为 nn (n≥3n \geq 3) 的 01 串 S=s1…snS = s_1 \ldots s_n,定义变换 T=f(S)=t1…tnT = f(S) = t_1 \ldots t_n 如下:

ti={si,i≤2,si,i≥3 且 si−2=0,si−1,i≥3 且 si−2=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 (1≤i≤q1 \leq i \leq q) 次修改会给定两个正整数 li,ril_i, r_i (1≤li≤ri≤n1 \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=s1…snS = s_1 \ldots s_n,表示初始时的字符串。

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

输出格式

对于每组测试数据,设初始时的答案为 k0k_0,第 ii (1≤i≤q1 \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 = 11010,f(S)=11100f(S) = 11100,f2(S)=11110f^2(S) = 11110,f3(S)=f4(S)=11111f^3(S) = f^4(S) = 11111,因此 k0=3k_0 = 3;
  • 第一次操作后,S=11110S = 11110,f(S)=f2(S)=11111f(S) = f^2(S) = 11111,因此 k1=1k_1 = 1;
  • 第二次操作后,S=10110S = 10110,f(S)=f2(S)=10011f(S) = f^2(S) = 10011,因此 k2=1k_2 = 1。

故答案为 ⨁i=0q((i+1)×ki)=(1×3)⊕(2×1)⊕(3×1)=3⊕2⊕3=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 = 1010100,k0=1k_0 = 1;
  • 第一次操作后,S=1010101S = 1010101,k1=1k_1 = 1;
  • 第二次操作后,S=1101101S = 1101101,k2=5k_2 = 5;
  • 第三次操作后,S=0001101S = 0001101,k3=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 的和。对于所有测试数据,保证:

  • 1≤t≤51 \leq t \leq 5;
  • 3≤n≤4×1053 \leq n \leq 4 \times 10^5, N≤8×105N \leq 8 \times 10^5;
  • 1≤q≤4×1051 \leq q \leq 4 \times 10^5, Q≤8×105Q \leq 8 \times 10^5;
  • 对于所有 1≤i≤n1 \leq i \leq n, 均有 si∈{0,1}s_i \in \{0, 1\};
  • 对于所有 1≤i≤q1 \leq i \leq q, 均有 1≤li≤ri≤n1 \leq l_i \leq r_i \leq n。
测试点编号 n,q≤n, q \leq N,Q≤N, Q \leq 特殊性质
1∼31 \sim 3 200200 10310^3 A
4∼64 \sim 6 200200 10310^3 无
7,87, 8 5,0005,000 10410^4 A
9∼119 \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 无
17∼1917 \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 = 1 且 sp+1=⋯=sn=0s_{p+1} = \cdots = s_n = 0。

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

特殊性质 C: 保证对于所有 1≤i≤q1 \leq i \leq q, 均有 li=1l_i = 1, 且 r1≤r2≤⋯≤rqr_1 \leq r_2 \leq \cdots \leq r_q。

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

首页