AC 自動機 輸出 出現次數最多的模式串

2021-09-26 15:34:14 字數 1092 閱讀 6174

有nn個由小寫字母組成的模式串以及乙個文字串tt。每個模式串可能會在文字串**現多次。你需要找出哪些模式串在文字串tt**現的次數最多。

輸入含多組資料。

每組資料的第一行為乙個正整數nn,表示共有nn個模式串,1 \leq n \leq 1501≤n≤150。

接下去nn行,每行乙個長度小於等於7070的模式串。下一行是乙個長度小於等於10^6106的文字串tt。

輸入結束標誌為n=0n=0。

對於每組資料,第一行輸出模式串最多出現的次數,接下去若干行每行輸出乙個出現次數最多的模式串,按輸入順序排列。

輸入 #1複製

2

ababab

ababababac

6beta

alpha

haha

delta

dede

tata

dedeltalphahahahototatalpha

0

輸出 #1複製

4

aba2

alpha

haha

#includeusing namespace std;

const int m=1e6+50;

char d[150][100],a[m];

int ans[200],n;

struct ac_auto

void ins(char *s,int id)

}void query(char *s)

}}ac;

int main()

ac.getfail();

scanf("%s",a);

ac.query(a);

for(int i=ans[0]=0;i<=n;i++)if(ans[0]printf("%d\n",ans[0]);

for(int i=1;i<=n;i++)if(ans[i]==ans[0])printf("%s\n",d[i]);

}return 0;

}

找出出現次數最多的字母

找出出現次數最多的字母 description 找出出現次數最多的字母input現在給你一行密文,全部由小寫字母組成 不超過100個 你要找出出現次數最多的那個字母 output 每組輸出1行,輸出出現次數最多的那個字母 sample input aaaaaaabbc nnnnnnnasnnnnas...

找出出現次數最多的幾個數值

這道題目所說的出現最多的幾個數值,其實是帶有附加條件的 這幾個數值中出現次數最少的那個數,要比除這幾個值外的其他數的總個數要多。說的自己都有點暈 這樣才能在最後結果中,呈現這幾個數。所以必須按照資料來源中的統計量分析出求前幾位的數值。其 如下 include include using namesp...

計算出出現次數最多的字串

因為這個題目意思太簡單了,看一下案例就懂了便不再描述了。注意有多組測試案例,每組案例的字串數量n 0輸入 5 green redblue redred 3pink orange pink0 輸出 red pink 解題 include include includeusing namespace s...