luogu1026 統計單詞個數 區間dp

2021-09-30 16:36:18 字數 1040 閱讀 1117

設f[i][j]表示1~i分成j分,最多的單詞數

預處理乙個sum[i][j]陣列,表示i~j包含的單詞數

預處理的時候需要注意乙個順序j從大到小列舉,i從j到1列舉

那麼sum[i][j]=sum[i+1][j],再看看從i開始有沒有新的單詞,有就++

dp的時候就是區間dp,dp[i][j]表示考慮到第i個字母,分為j段的最大字母數量

轉移就是列舉在**分段dp[i][j]=dp[l][j-1]+sum[l+1][i]

#include#include#include#include#include#include#include#include#includeusing namespace std;

typedef long long ll;

const int inf=0x3f3f3f3f;

inline int read()

while(ch>='0'&&ch<='9')x=x*10+ch-'0',ch=getchar();

return x*f;

}string s;

string a[10];

int sum[210][210];

int f[210][210];

int q;

bool check(int l,int r)

return false;

}int main()

int len=s.length()-1;

q=read();

for(i=1;i<=q;i++) cin>>a[i];

for(j=len;j>=1;j--) }

f[0][0]=0;

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

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

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

}} cout<

return 0;

}

洛谷1026 統計單詞個數

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

P1026 統計單詞個數

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

dp P1026 統計單詞個數

給出乙個長度不超過200200的由小寫英文本母組成的字母串 約定 該字串以每行2020個字母的方式輸入,且保證每行一定為2020個 要求將此字母串分成kk份 11單詞在給出的乙個不超過66個單詞的字典中。要求輸出最大的個數。輸入格式 每組的第一行有22個正整數 p,kp,k pp表示字串的行數,kk...