題意:
輸入乙個字串 a
aa,乙個整數 n
nn,表示接下來有 n
nn 個字串 b
ib_i
bi,判斷 b
ib_i
bi 是否為 a
aa 的子串行。
思路:
暴力的話 o(∣
a∣⋅∑
bi
)o(|a|·\sum b_i)
o(∣a∣⋅
∑bi
),會 t。
n ex
t[i]
[′a′
...′
z′
]next[i]['a'...'z']
next[i
][′a
′...
′z′]
表示第 i
ii 個位置往後的第乙個'a'...'z'
出現的位置。
從後往前掃,用 las
t[′a
′...
′z′]
last['a'...'z']
last[′
a′..
.′z′
] 維護當前位置往後第乙個'a'...'z'
出現的位置,把 las
tlast
last
賦值給 nex
t[i]
next[i]
next[i
] 即可。
code:
#include
#define mem(a, x) memset(a, x, sizeof(a))
using
namespace std;
const
int maxn =
1e6+5;
int n;
char s[maxn]
, t[maxn]
;int nex[maxn][26
], last[26]
;void
deal()
}bool
check()
return
true;}
intmain()
return0;
}
月月查華華的手機
序列自動機 月月和華華一起去吃飯了。期間華華有事出去了一會兒,沒有帶手機。月月出於人類最單純的好奇心,開啟了華華的手機。哇,她看到了一片的qq推薦好友,似乎華華還沒有瀏覽過。月月頓時醋意大發,出於對好朋友的關心,為了避免華華浪費太多時間和其他聊天,她要刪掉一些推薦好友。但是為了不讓華華發現,產生猜疑...
牛客網 每日一題 4月2日 月月查華華的手機
牛客網鏈結 時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 月月和華華一起去吃飯了。期間華華有事出去了一會兒,沒有帶手機。月月出於人類最單純的好奇心,開啟了華華的手機。哇,她看到了一片的qq推薦好友,似...
牛客網 每日一題 4月2日 月月查華華的手機
牛客網鏈結 時間限制 c c 2秒,其他語言4秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld 題目描述 月月和華華一起去吃飯了。期間華華有事出去了一會兒,沒有帶手機。月月出於人類最單純的好奇心,開啟了華華的手機。哇,她看到了一片的qq推薦好友,似...