#P8947. Angels & Demons

    ID: 8140 Type: RemoteJudge 2000ms 1024MiB Tried: 0 Accepted: 0 Difficulty: 7 Uploaded By: Tags>线段树2023洛谷原创后缀自动机,SAMO2优化

Angels & Demons

题目背景

教皇内侍已经感觉到了身体上的疼痛。疼痛迅速传遍了全身,让他想抓想挠。

不要忘记耶稣所遭受的痛苦。

他感觉喉咙中有种火烧火燎般的疼痛,就连吗啡都无法将之化解。

我在这里的事情已经做完了。

他激起了人们的敬畏之心,人们又有了希望。

在帕利恩凹室里的时候,教皇内侍遵从上帝的教诲,举行了涂油仪式。他的身体上,发须上,面颊上,麻布长袍上,全身都涂满了灯油。他这会儿像是浸泡在神圣的绿色灯油中一样,气味芬芳,如母亲的体香,可却易燃烧。他将会幸运地升天。那是个充满奇迹而又迅速的过程。他留给世人的不再是丑闻……而是一股新的力量和奇迹。

他的手滑入长袍的口袋,摸出从帕利恩凹室里拿来的小小的金色打火机。

他低声说出了上帝在最后审判时说过的一句话。

熊熊烈焰直冲云霄,上帝的天使也会在火焰中升天。

他的大拇指按在了打火机上。

人们还在圣彼得广场上唱着颂歌……

题目描述

给定 nn 个由小写字母组成的模板串 S1...nS_{1...n}qq 组询问,询问分为以下两种类型:

  1. 1 T:给定一个由小写字母组成的询问串 TT
  2. 2 p l r:设 num(p,l,r)num(p,l,r) 表示 SpS_p[l,r][l,r] 子串是多少个询问串的子串,求 maxi=1l(num(p,i,r))\max\limits_{i=1}^{l}(num(p,i,r))

输入格式

第一行,两个数 n,q,w0n,q,w_0,其中 w0w_0 表示数据类型。

  • w0=0w_0=0

    2n+12\sim n+1 行,每行一个字符串,第 i+1i+1 行表示 SiS_i

    接下来 qq 行,每行一组询问,格式如题。

  • w0=1w_0=1

    第二行,输入三个整数 A,B,CA,B,C

    接下来 nn 行,每行一个字符串,表示一个模板串。

    接下来,询问按照如下代码生成(代码中的 lst 表示上一次询问 22 的答案,初始时为 00le[i] 表示模板串 ii 的长度,s 是 char 数组):

while (q--) {
	int op;
	scanf("%d", &op);
	if (op == 1) {
		scanf("%s", s + 1);
		int x((1ll * A * lst + B) % C), l(strlen(s + 1));
		for (int i(1); i <= l; ++i) {
			swap(s[i], s[x % l + 1]);
			x = (1ll * A * x + B) % C;
		}
	} else {
		int p, l, r;
		scanf("%d%d%d", &p, &l, &r);
		int x((1ll * A * lst + B) % C);
		p = (p + x) % n + 1;
		x = (1ll * A * x + B) % C;
		l = (l + x) % le[p] + 1;
		x = (1ll * A * x + B) % C;
		r = (r + x) % le[p] + 1;
		if (l > r) swap(l, r);
		// 此处更新 lst
	}
}

输出格式

对于每个询问 22,输出一行一个整数表示答案。

5 11 0
abb
aab
baab
bbaa
aabbb
1 ab
2 1 1 3
2 2 2 3
1 ba
2 3 1 2
2 4 1 2
2 4 2 3
1 abb
2 5 2 4
2 1 1 3
2 1 1 2

0
1
1
0
1
1
1
2

5 11 1
114 514 1919810
abb
aab
baab
bbaa
aabbb
1 ab
2 1 1 3
2 2 2 3
1 ba
2 3 1 2
2 4 1 2
2 4 2 3
1 abb
2 5 2 4
2 1 1 3
2 1 1 2

0
0
1
0
0
1
1
0

提示

对于 100%100\% 数据:1n,q1051\le n,q\le 10^5i=1nSi5×105\sum\limits_{i=1}^{n}|S_i|\le5\times10^5T5×105\sum|T|\le5\times10^51pn1\le p\le nw0{0,1}w_0\in\{0,1\}1A,B<C1091\le A,B<C\le10^9

测试点 分值 nn\le i=1nSi\sum\limits_{i=1}^{n}|S_i|\le qq\leq T\sum | T| \leq w0=w_0= 其他限制
11 33 2020 200200 200200 50005000 00
22 200200 20002000
33
44 5×1055\times10^5
55
66 11 5×1055\times10^5 22
77
88 44 10510^5 10510^5 10510^5 10510^5
99 33 字符串随机
1010 44 2×1052 \times 10^5 2×1052 \times 10^5
1111 33 字符串随机
1212 44 3×1053 \times 10^5 3×1053 \times 10^5
1313 33 字符串随机
1414 44 4×1054 \times 10^5 4×1054 \times 10^5
1515 33 字符串随机
1616 44 5×1055\times10^5 5×1055\times10^5
1717 33 字符串随机
1818 2×1052 \times 10^5
1919 3×1053 \times 10^5
2020 4×1054 \times 10^5
2121 5×1055\times10^5 字符串随机
2222
2323
2424
2525
2626 44 3×1053\times10^5 11
2727 4×1054\times10^5
2828 5×1055\times10^5
2929
3030

测试点 8178\sim 17 保证对于所有询问 22l=1l=1