南昌邀請賽網路賽m題 subsequence
題意:
給你乙個字串s,長度小於1e5,
然後n次詢問,n小於1e5,
每次輸入乙個字串t,問t是不是s的子串行。 t長度小於1000
input:
abcdefg3abc
adgcba
output:
yesyesno
思路:
序列自動機其實就是先預處理出來乙個陣列,next[i][j]表示在位置i的後面第乙個字元j所在的位置,預處理出next陣列的複雜度就是log(n∗26)
每次詢問就是log(m)的複雜度(m是每次詢問字串的長度)。
ac**:
#includeusingnamespace
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,...