AT_abc341_e.[ABC341E] Alternating String
普及+/提高
通过率:0%
AC君温馨提醒
该题目为【atcoder】题库的题目,您提交的代码将被提交至atcoder进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。
题目描述
我们称仅由 0 和 1 组成,且字符串中任意连续的 2 个字符都不相同的字符串为好字符串。
给定一个长度为 N 的仅由 0 和 1 组成的字符串 S。有 Q 个查询,请依次处理每个查询。
查询有以下两种类型:
1 L R:将 S 的第 L 个字符到第 R 个字符的0和1反转。即,对于满足 L≤i≤R 的整数 i,如果 S 的第 i 个字符为0,则变为1,如果为1,则变为0。2 L R:取出 S 的第 L 个字符到第 R 个字符(顺序不变)组成一个长度为 R−L+1 的字符串 S′。如果 S′ 是好字符串,则输出Yes,否则输出No。
输入格式
输入按以下格式从标准输入给出。
N Q
S
query1
query2
⋮
queryQ
每个查询 queryi (1≤i≤Q) 为以下两种形式之一:
1 L R
或
2 L R
输出格式
设第 2 种类型的查询有 K 个,请输出 K 行。
第 i 行输出第 i 个第 2 种类型查询的结果。
输入输出样例
输入#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×105
- S 是长度为 N 的仅由
0和1组成的字符串 - 对于两种类型的查询,1≤L≤R≤N
- 至少存在一个第 2 种类型的查询
- N、Q、L、R 均为整数
样例解释 1
初始时,S=10100。依次处理每个查询如下:
- 对于第 1 个查询,取出 S 的第 1 到第 3 个字符,得到 S′=
101。这是好字符串,输出Yes。 - 对于第 2 个查询,取出 S 的第 1 到第 5 个字符,得到 S′=
10100。这不是好字符串,输出No。 - 对于第 3 个查询,将 S 的第 1 到第 4 个字符的
0和1反转。此时 S=01010。 - 对于第 4 个查询,取出 S 的第 1 到第 5 个字符,得到 S′=
01010。这是好字符串,输出Yes。 - 对于第 5 个查询,将 S 的第 3 个字符的
0和1反转。此时 S=01110。 - 对于第 6 个查询,取出 S 的第 2 到第 4 个字符,得到 S′=
111。这不是好字符串,输出No。
样例解释 2
注意,仅由 0 或 1 组成的长度为 1 的字符串也满足好字符串的条件。
由 ChatGPT 4.1 翻译
输入解题思路,AI测评打分。不知道怎么写?