#P14973. 『GTOI - 2D』木棍

    ID: 16869 远端评测题 1500ms 512MiB 尝试: 0 已通过: 0 难度: 7 上传者: 标签>线段树O2优化组合数学容斥原理Catalan 数

『GTOI - 2D』木棍

题目背景

木棍 + 木棍 = 木棍。

题目描述

对于一个 0101SS,定义 f(S)f(S) 为:删除 SS 中所有的 01 子串,重复若干次直到 SS 中不含有 01 子串,此时剩下的字符串即为 f(S)f(S)。可以证明删除顺序不影响最终结果。

定义价值函数 V(S)=T[S=T][f(S)=f(T)]V(S)=\sum\limits_T [|S|=|T|][f(S)=f(T)]

给定长度为 nn0101SS,需要支持以下两种操作:

  • 1 l r 对于 SS 中第 ll 个字符到第 rr 个字符中的每一个字符,若其是 00 则修改为 11,否则修改为 00

  • 2 l r 对于 SS 中第 ll 个字符到第 rr 个字符所组成的子串 TT,求 V(T)mod998244353V(T)\bmod 998244353

输入格式

第一行一个正整数 nn,表示 SS 的长度。

第二行 nn 个字符,表示 0101ss

第三行一个正整数 qq,表示操作次数。

接下来 qq 行,每行三个正整数 op,l,rop,l,r,表示操作类型和参数。

输出格式

对于每个操作 22,输出 V(T)mod998244353V(T)\bmod 998244353

5
00111
2
1 4 5
2 1 4
3
5
11111
2
1 3 3
2 2 5
3
10
1011011001
6
2 2 2
2 1 9
1 2 9
1 4 6
1 7 8
2 3 7
1
27
5
15
001001111010100
8
1 4 15
2 4 12
2 6 11
1 7 8
2 4 4
2 7 10
2 1 9
2 12 13
27
5
1
3
48
1

提示

【数据范围】

本题采用捆绑测试。

对于 100%100\% 的数据,保证 $1\le n,q\le 5\times 10^5,op\in\{1,2\},1\le l\le r\le n$。

Subtask\text{Subtask} nn\le qq\le 特殊性质 分值
11 2020 55
22 500500 11 1515
33 50005000 ^
44 5×1055\times 10^5 2525
55 50005000 1010
66 10510^5 ^
77 5×1055\times 10^5 2020

特殊性质:保证存在一次操作 22 满足 l=1,r=nl=1,r=n