编程题
### 问题描述 一个串 $S$ 是 K-period 的,当且仅当 $\forall 1 \leq i \leq |S|-K$,有 $S_i=S_{i+K}$,特别地,当 $|S| \leq K$ 时,$S$ 是 K-period 的。 给定长度为 $N$ 的字符串 $S$,字符集为小写字母,支持以下 $2$ 种操作: > 1. 给定 $x,c$,表示将 $S[x]$ 修改为 $c$。 > 2. 给定 $l_1,r_1,K$,询问 $S[l_1,r_1]$ 是否是 K-period 的。 ### 输入格式 第一行包含 $2$ 个正整数 $N,Q$,表示字符串长度和操作次数。 第二行给定字符串 $S$。 之后 $Q$ 行,每行第一个数表示 $type$: 如果 $type=1$,之后给定 $2$ 个正整数 $x,c$,表示一次修改。 如果 $type=2$,之后给定 $4$ 个正整数 $l_1,r_1,K$,表示一次询问,保证 $1 \leq l_1 \leq r_1 \leq N$。 ### 输出格式 对于每次询问,如果该串是 K-period 输出 `Yes`,否则输出 `No`。 ### 样例输入 ```text 5 3 abaaa 1 4 b 2 1 5 2 2 1 2 1 ``` ### 样例输出 ```text Yes No ``` ### 评测数据规模 对于所有测评数据,$1 \leq N,Q \leq 10^5$。
查看答案
赣ICP备20007335号-2