CODEVS T 1404 字串匹配

2022-04-07 05:24:49 字數 967 閱讀 6438

時間限制: 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 4

5using

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的中文稱為雜湊,這當然是音譯,直譯過來就是雜湊,或者也有叫預對映的。雜湊的作用就是通過某個特殊函式的對映,將任意...