51nod 1277 字串中的最大值

2022-02-27 12:38:03 字數 580 閱讀 4941

51nod 1277 字串中的最大值

對於單串,考慮多串的fail樹,發現next陣列的關係形成樹形結構

建出next樹,對於每乙個字首,他出現的次數就是他子樹的大小

#include#include#includeinline int read()  

const int maxn = 100007;

struct node edge[maxn << 1];

int num = 0,head[maxn];

inline void add_edge(int u,int v)

long long siz[maxn];

char s[maxn];

int next[maxn];

int len = 0;

void getnext()

} } long long ans = 0;

void dfs(int x)

ans = std::max(ans, (long long) x * siz[x]);

} int main()

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...

51nod1277 字串中的最大值(KMP)

1277 字串中的最大值 codility 基準時間限制 1 秒 空間限制 131072 kb 分值 80 難度 5級演算法題 乙個字串的字首是指包含該字元第乙個字母的連續子串,例如 abcd的所有字首為a,ab,abc,abcd。給出乙個字串s,求其所有字首中,字元長度與出現次數的乘積的最大值。例...