我們定義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同所有字...