#P7879. 「SWTR-7」How to AK NOI?

    ID: 6503 Type: RemoteJudge 1000~4500ms 512MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>动态规划,dp线段树2021后缀自动机,SAMO2优化矩阵加速,矩阵优化哈希,HASH洛谷月赛

「SWTR-7」How to AK NOI?

题目背景

一些关于字符串的定义与约定详见「帮助 / 提示」部分。

请不要恶意卡评测。


小 A 正在读一篇文章 ——《如何优雅地 AK NOI?》

题目描述

不幸的是,这篇文章是用英语写的。小 A 的视力很糟糕,同时词汇量也很小。

具体地,这篇文章可以用一个字符串 tt 表示。同时给出另一个字符串 ss:小 A 所有认识的单词,都是 ss长度不小于 kk子串。

一段文字 TT 被称为「可读懂的」,当且仅当其能被分割成若干个小 A 读得懂的单词。例如当 k=2k=2s=abcds=\texttt{abcd} 时,abcd/abc\texttt{abcd/abc}cd/ab/bc/bcd\texttt{cd/ab/bc/bcd} 就是可读懂的,而 abcc\texttt{abcc}tzcaknoi\texttt{tzcaknoi} 就是不可读懂的。

接下来,小 A 会进行 qq 次行动:

  • Type 1:擦亮眼睛。具体地,小 A 会选择文章 tt 的一个子串 t[l:r]t[l:r],并将其修改为字符串 x (x=rl+1)x\ (|x|=r-l+1)
  • Type 2:阅读文章。具体地,小 A 会选择文章 tt 的一个子串 t[l:r]t[l:r] 并进行阅读。对于每次 Type 2 的操作,你需要告诉小 A 他能不能看懂这段文字。能够读懂则输出 Yes,否则输出 No

输入格式

第一行一个正整数 TT,表示该点 Subtask 编号。
第二行一个字符串 ss
第三行一个字符串 tt
第四行一个正整数 kk
第五行一个正整数 qq

接下来 qq 行,每行表示一个询问。首先给出操作参数 opop

  • op=1op=1,则接下来两个正整数 l,rl,r 与一个字符串 xx,表示将 t[l:r]t[l:r] 修改为 xx
  • op=2op=2,则接下来两个正整数 l,rl,r,表示一次询问。

输出格式

对于每个询问输出一行字符串:若可以读懂则输出 Yes,否则输出 No

0
bbccabcacbcbac
cbcacbcabbcabca
3
17
2 1 2
2 1 4
2 1 6
2 2 15
2 6 15
2 9 15
1 4 13 babbccabbd
2 1 11
2 1 12
2 1 15
2 5 11
1 13 15 cab
2 3 12
2 7 10
2 11 15
2 10 14
2 9 14
No
No
Yes
Yes
Yes
Yes
Yes
No
No
No
No
Yes
No
No
Yes

提示

「数据范围与约定」

n=sn=|s|m=tm=|t|L=xL=\sum |x|

Subtask nn\leq mm\leq LL\leq qq\leq kk\leq 分值
0 0 point
1 7070 7070 10 points
2 200200 200200
3 10310^3 10310^3
4 11
5 2×1052\times 10^5 10510^5 00 2×1042\times 10^4 55 15 points
6 5×1045\times 10^4 10 points
7 66 15 points
8 20 points

对于 100%100\% 的数据,1n3×1061\leq n\leq 3\times 10^61L3×1051\leq L\leq 3\times 10^51m2×1051\leq m\leq 2\times 10^51q1051\leq q\leq 10^51k81\leq k\leq 8。 保证 x=rl+1|x|=r-l+1,且字符集为 [a,i][\texttt{a,i}]


Subtask 0 是样例及 Hack 数据

  • Subtask 0 ~ 3 时间限制 1s。
  • Subtask 4 ~ 6 时间限制 1.5s。
  • Subtask 7 时间限制 3s。
  • Subtask 8 时间限制 4.5s。

「子任务依赖」

本题使用子任务依赖

简单地说,如果 Subtask a 依赖于 Subtask b,那么只有你通过 Subtask b 的全部测试点时,Subtask a 才会计入总分

  • Subtask 1 依赖于 Subtask 0。
  • Subtask 2 依赖于 Subtask 0,1。
  • Subtask 3 依赖于 Subtask 0,1,2。
  • Subtask 6 依赖于 Subtask 0,5。
  • Subtask 7 依赖于 Subtask 0,5,6。
  • Subtask 8 依赖于 Subtask 0~7。

保证 Subtask 0 的 Hack 数据符合 Subtask 1,2,3,6,7,8 的所有限制

「帮助 / 提示」

字符串 tt'tt 的子串,当且仅当我们能够从 tt 的开头和结尾删除若干个字符(可以不删除)并得到 tt'
定义 t[l:r]t[l:r] 表示 tltl+1tr1trt_lt_{l+1}\cdots t_{r-1}t_r 所形成的字符串。

读入文件较大,请注意 IO 优化。

「题目来源」

Sweet Round 07 E。
idea & solution & data:Alex_Wei;验题:tzc_wk