序列自動機 模板

2022-09-06 19:51:11 字數 839 閱讀 6169

南昌邀請賽網路賽m題 subsequence

題意:

給你乙個字串s,長度小於1e5,

然後n次詢問,n小於1e5,

每次輸入乙個字串t,問t是不是s的子串行。 t長度小於1000

input:

abcdefg

3abc

adgcba

output:

yes

yesno

思路:

序列自動機其實就是先預處理出來乙個陣列,next[i][j]表示在位置i的後面第乙個字元j所在的位置,預處理出next陣列的複雜度就是log(n∗26)

每次詢問就是log(m)的複雜度(m是每次詢問字串的長度)。

ac**:

#includeusing

namespace

std;

const

int maxn=1e5+7

;char

s[maxn];

char

t[maxn];

int next[maxn][27

];void init(int

n)}int

main()

}printf(

"%s\n

",(f?"

yes":"no"

)); }

return0;

}

序列自動機模板

題意 有乙個字串s1,現在給你n個字串s2,每次你需要回答s2是否是s1的子串行。解題心得 序列自動機其實就是先預處理出來乙個陣列,next i j 表示在位置 i 的後面第乙個字元 j 所在的位置,預處理出next陣列的複雜度就是log n 26 每次詢問就是log m 的複雜度 m是每次詢問字串...

Subsequence(序列自動機模板題)

題目大意 給你乙個字串,然後再給你m個字串,然後問你在第乙個字串中不連續的子串能不能構成輸入的子串。具體思路 構建乙個序列自動機就可以了。剛接觸,記錄下 ac 1 include2 using namespace std 3 define ll long long 4 define inf 0x3f...

序列自動機

昨天在牛客碰到了這樣的一道題,判斷一些字串是不是原串的子串行,因為之前做過一些lcs子串行的題,就想,這不賊簡單,用lcs求一下每個子串和原串,然後判斷lcs的長度是不是等於要判斷的那個串的長度,然後,t了,因為dp求lcs幾個串還好說,但是當串又多又長時,不僅會t,dp陣列不弄滾動陣列還會mle,...