51nod 1304 字串的相似度

2021-08-17 19:29:22 字數 715 閱讀 6606

我們定義2個字串的相似度等於兩個串的相同字首的長度。例如 「abc」 同 「abd」 的相似度為2,」aaa」 同 「aaab」 的相似度為3。

給出乙個字串s,計算s同他所有字尾的相似度之和。例如:s = 「ababaa」,所有字尾為:

ababaa 6

babaa 0

abaa 3

baa 0

aa 1

a 1

s同所有字尾的相似度的和 = 6 + 0 + 3 + 0 + 1 + 1 = 11

很明顯地就是讓你求擴充套件kmp的f指標,全部加起來就是答案了

以前的時候,看到這題,只會sam,然後卡空間,覺得大毒瘤

今天講課的時候提了一下擴充套件kmp

然後發現很簡單qaq

教程就不寫了。。

自己隨便用筆畫一畫估計都能畫出來。。

code:

#include

#include

#include

#include

using

namespace

std;

const

int n=1000005;

char ss[n];

int len;

int f[n];

void get_f()

}}int main()

51nod 1304 字串的相似度

我們定義2個字串的相似度等於兩個串的相同字首的長度。例如 abc 同 abd 的相似度為2,aaa 同 aaab 的相似度為3。給出乙個字串s,計算s同他所有字尾的相似度之和。例如 s ababaa 所有字尾為 ababaa 6 babaa 0 abaa 3 baa 0 aa 1 a 1s同所有字尾...

51nod 1304 字串的相似度 exkmp

我們定義2個字串的相似度等於兩個串的相同字首的長度。例如 abc 同 abd 的相似度為2,aaa 同 aaab 的相似度為3。給出乙個字串s,計算s同他所有字尾的相似度之和。例如 s ababaa 所有字尾為 ababaa 6 babaa 0 abaa 3 baa 0 aa 1 a 1s同所有字尾...

擴充套件KMP學習 51nod1304 字串的相似度

我們定義2個字串的相似度等於兩個串的相同字首的長度。例如 abc 同 abd 的相似度為2,aaa 同 aaab 的相似度為3。給出乙個字串s,計算s同他所有字尾的相似度之和。例如 s ababaa 所有字尾為 ababaa 6 babaa 0 abaa 3 baa 0 aa 1 a 1 s同所有字...