時間限制: 1 s
空間限制: 128000 kb
題目等級 : 大師 master
題解檢視執行結果
給你兩個串a,b,可以得到從a的任意位開始的子串和b匹配的長度。
給定k個詢問,對於每個詢問給定乙個x,求出匹配長度恰為x的位置有多少個。
n,m,k<=200000
輸入描述 input description
第一行三個數 n,m,k,表示a的長度、b的長度和詢問數。
第二行為串a。
第三行為串b。
接下來k行,每行1個數x。
輸出描述 output description
對於每個詢問輸出乙個數。
樣例輸入 sample input
6 2 2
aabcdeab0
2樣例輸出 sample output41
資料範圍及提示 data size & hint
各個測試點1s
kmp得出ans,然後考慮將串分解,,倒序累加ans[next[i]],,此時的ans[i]是》=i位的數量,所以最後還要處理為ans[i]-=ans[i+1]
1 #include 2 #include 3 #include 45using
namespace
std;67
const
int n(200000+5);8
intn,m,k,lb,la;
9int
p[n],ans[n];
10char
a[n],b[n];
1112 inline void
get_next()
1319
}20 inline void
kmp()
2128}29
30int
main()
3142
return0;
43 }
CodeVS1404 字串匹配(擴充套件kmp)
題目描述 description 給你兩個串a,b,可以得到從a的任意位開始的子串和b匹配的長度。給定k個詢問,對於每個詢問給定乙個x,求出匹配長度恰為x的位置有多少個。n,m,k 200000 輸入描述 input description 第一行三個數 n,m,k,表示a的長度 b的長度和詢問數。...
字串1 字串的旋轉
題目描述 給定乙個字串,要求將字串前面的若干個字元移到字串的尾部。例如 將字串 abcdef 的前三個字元 a b c 移到字串的尾部,那麼原字串將變成 defabc 首先想到的是將需要移動的字元乙個乙個移到字串的尾部。實現如下 public class transfet s n 1 t publi...
字串(一) 字串Hash
今天開一手最不 tao 擅 yan 長的字串演算法 字串hash演算法。似乎提到字串的話,kmp應該是更為常見的一種,但是hash有它的優點,被犇們稱為 優雅的暴力 何謂hash?hash的中文稱為雜湊,這當然是音譯,直譯過來就是雜湊,或者也有叫預對映的。雜湊的作用就是通過某個特殊函式的對映,將任意...