最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

CF競賽題目講解_CF149E(正序后綴自動機(jī)+反序后綴自動機(jī))

2022-09-30 18:25 作者:Clayton_Zhou  | 我要投稿

https://codeforces.com/problemset/problem/149/E

題意:

已知一個長字符串S和一組詢問字符串,對于每個詢問需要知道在S中是否存在兩個位置不同的子串可以組成該詢問字符串。

題解:

正串后綴自動機(jī)樹 + 反串后綴自動機(jī)樹

考慮對 字符串S 的正串和反串分別建后綴自動機(jī)樹.


將 詢問字符串p 的正串在正串的 SAM 上去匹配,一直匹配到匹配不了為止,并記錄 p[i] 在正串自動機(jī)節(jié)點(diǎn)上 endpos 的最小值 a[i],即p[i]在S中的位置.

對 p 的反串也進(jìn)行相同的處理,記錄endpos 的最大值 b[i],即p[i]在S中的位置.

我們只需枚舉 1至length(p) 并判斷 a[i] && b[i+1] && a[i]<b[i+1]? 即可.

如果滿足這個條件,就說明這個詢問是有解的.


要注意判斷一下長度為 1 的情況,這顯然是無解的.


CF競賽題目講解_CF149E(正序后綴自動機(jī)+反序后綴自動機(jī))的評論 (共 條)

分享到微博請遵守國家法律
慈溪市| 天气| 慈利县| 安图县| 长岭县| 收藏| 锦屏县| 长寿区| 汝阳县| 江源县| 会理县| 五寨县| 三门县| 定襄县| 莒南县| 离岛区| 嫩江县| 页游| 武隆县| 图木舒克市| 江西省| 和龙市| 新河县| 徐水县| 英超| 普安县| 栾城县| 云林县| 班戈县| 肃北| 六盘水市| 民丰县| 喀喇沁旗| 江阴市| 呼和浩特市| 西丰县| 壤塘县| 和田市| 平果县| 陈巴尔虎旗| 龙门县|