51nod 1129 字串最大值(kmp)

2022-02-13 09:22:34 字數 824 閱讀 8583

傳送門

題目大意

求乙個字串的前

綴出現次數乘以長度的最大值。

題解暴力列舉每乙個字首求出現次數再乘以常數取最大 這樣做會t幾個點

看了老師的做法是任意字首出現的次數,它的next也會出現這些次數

**暴力

#include#include

#include

using

namespace

std;

char s[1000009

];int nex[1000009

],len;

long

long

max_ans;

void

getnext()

}void slove(int

k) }

//coutlong)js*k);

}int

main()

第二種方法

#include#include

#include

using

namespace

std;

const

int maxl=1000010

;char

s[maxl],su[maxl];

int next[maxl],l,ans=0

,cs[maxl];

void

getnext()

}int

main()

cout

return0;

}

51Nod1277 字串中的最大值

乙個字串的字首是指包含該字元第乙個字母的連續子串,例如 abcd的所有字首為a,ab,abc,abcd。給出乙個字串s,求其所有字首中,字元長度與出現次數的乘積的最大值。例如 s abababa 所有的字首如下 a 長度與出現次數的乘積 1 4 4,ab 長度與出現次數的乘積 2 3 6,aba 長...

51nod 1277 字串中的最大值

a 長度與出現次數的乘積 1 4 4,ab 長度與出現次數的乘積 2 3 6,aba 長度與出現次數的乘積 3 3 9,abab 長度與出現次數的乘積 4 2 8,ababa 長度與出現次數的乘積 5 2 10,ababab 長度與出現次數的乘積 6 1 6,abababa 長度與出現次數的乘積 7...

51nod 1277 字串中的最大值

51nod 1277 字串中的最大值 對於單串,考慮多串的fail樹,發現next陣列的關係形成樹形結構 建出next樹,對於每乙個字首,他出現的次數就是他子樹的大小 include include includeinline int read const int maxn 100007 struc...