AT_abc341_e.[ABC341E] Alternating String

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

我们称仅由 0 和 1 组成,且字符串中任意连续的 22 个字符都不相同的字符串为好字符串。
给定一个长度为 NN 的仅由 0 和 1 组成的字符串 SS。有 QQ 个查询,请依次处理每个查询。
查询有以下两种类型:

  • 1 L R :将 SS 的第 LL 个字符到第 RR 个字符的 0 和 1 反转。即,对于满足 L≤i≤RL\leq i\leq R 的整数 ii,如果 SS 的第 ii 个字符为 0,则变为 1,如果为 1,则变为 0。
  • 2 L R :取出 SS 的第 LL 个字符到第 RR 个字符(顺序不变)组成一个长度为 R−L+1R-L+1 的字符串 S′S'。如果 S′S' 是好字符串,则输出 Yes,否则输出 No。

输入格式

输入按以下格式从标准输入给出。

NN QQ
SS
query1query_1
query2query_2
⋮\vdots
queryQquery_Q

每个查询 queryiquery_i (1≤i≤Q)(1\leq i\leq Q) 为以下两种形式之一:

11 LL RR

或

22 LL RR

输出格式

设第 22 种类型的查询有 KK 个,请输出 KK 行。
第 ii 行输出第 ii 个第 22 种类型查询的结果。

输入输出样例

  • 输入#1

    5 6
    10100
    2 1 3
    2 1 5
    1 1 4
    2 1 5
    1 3 3
    2 2 4

    输出#1

    Yes
    No
    Yes
    No
  • 输入#2

    1 2
    1
    1 1 1
    2 1 1

    输出#2

    Yes

说明/提示

限制条件

  • 1≤N,Q≤5×1051\leq N, Q\leq 5\times 10^5
  • SS 是长度为 NN 的仅由 0 和 1 组成的字符串
  • 对于两种类型的查询,1≤L≤R≤N1\leq L\leq R\leq N
  • 至少存在一个第 22 种类型的查询
  • NN、QQ、LL、RR 均为整数

样例解释 1

初始时,S=S=10100。依次处理每个查询如下:

  • 对于第 11 个查询,取出 SS 的第 11 到第 33 个字符,得到 S′=S'=101。这是好字符串,输出 Yes。
  • 对于第 22 个查询,取出 SS 的第 11 到第 55 个字符,得到 S′=S'=10100。这不是好字符串,输出 No。
  • 对于第 33 个查询,将 SS 的第 11 到第 44 个字符的 0 和 1 反转。此时 S=S=01010。
  • 对于第 44 个查询,取出 SS 的第 11 到第 55 个字符,得到 S′=S'=01010。这是好字符串,输出 Yes。
  • 对于第 55 个查询,将 SS 的第 33 个字符的 0 和 1 反转。此时 S=S=01110。
  • 对于第 66 个查询,取出 SS 的第 22 到第 44 个字符,得到 S′=S'=111。这不是好字符串,输出 No。

样例解释 2

注意,仅由 0 或 1 组成的长度为 11 的字符串也满足好字符串的条件。

由 ChatGPT 4.1 翻译

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

首页