P1026 統計單詞個數

2022-05-10 03:22:26 字數 1070 閱讀 4051

給出乙個長度不超過 200的由小寫英文本母組成的字母串(約定;該字串以每行 20個字母的方式輸入,且保證每行一定為 20個)。要求將此字母串分成 k份( 1),且每份中包含的單詞個數加起來總數最大(每份中包含的單詞可以部分重疊。當選用乙個單詞之後,其第乙個字母不能再用。例如字串 this中可包含 this和 is,選用 this之後就不能包含 th)。

單詞在給出的乙個不超過 6個單詞的字典中。

要求輸出最大的個數。

輸入格式:

每組的第一行有 2個正整數( p,k )

p 表示字串的行數, k表示分為 k個部分。

接下來的 p行,每行均有 20個字元。

再接下來有 1個正整數 sss ,表示字典中單詞個數。( 1≤s≤6)

接下來的 s行,每行均有 1個單詞。

輸出格式:

1個整數,分別對應每組測試資料的相應結果。

輸入樣例#1:複製

1 3

thisisabookyouareaoh4is

aoksab

輸出樣例#1:複製

7
首先一定要誇讚一下水出境界的資料,讓我這種蒟蒻用5重迴圈把這道題水過去了╮(╯▽╰)╭

5重迴圈後就變成了一道簡單dp

f[i][j]表示到第個字元,分成j組後的最大值

f[i][j]=max(f[l-1][j-1]+z[l][i])

每次窮舉l然後暴力窮舉q(l~i)中每個字母能否作為首字母匹配單詞求出z[l][i]

#include#include#includeusing namespace std;

int i,m,n,j,k,b[10],w,ee,l,q,p,f[201][50],ans,o,v[10001];

char c[201],a[100001],d[10][201];

bool bl;

int main()

scanf("%d",&m);

for(i=1;i<=m;i++)

for(i=0;i

P1026 統計單詞個數

給出乙個長度不超過200的由小寫英文本母組成的字母串 約定 該字串以每行20個字母的方式輸入,且保證每行一定為20個 要求將此字母串分成k份 1單詞在給出的乙個不超過6個單詞的字典中。要求輸出最大的個數。輸入格式 每組的第一行有二個正整數 p,k p表示字串的行數 k表示分為k個部分。接下來的p行,...

P1026 統計單詞個數

p1026 統計單詞個數 設 f i j 表示到主串第 i 位,已分成 j 段的最多單詞數,val l r 表示區間 l,r 包含的單詞個數 可得 f i j max f i j f u j 1 val u 1 i 套乙個三重迴圈即可 val l r 可以暴力處理 單詞判重用map include ...

P1026 統計單詞個數

給出乙個長度不超過200的由小寫英文本母組成的字母串 約定 該字串以每行20個字母的方式輸入,且保證每行一定為20個 要求將此字母串分成k份 1單詞在給出的乙個不超過6個單詞的字典中。要求輸出最大的個數。輸入格式 每組的第一行有二個正整數 p,k p表示字串的行數 k表示分為k個部分。接下來的p行,...