HRBUST1217 統計單詞個數

2021-07-27 23:33:18 字數 1450 閱讀 7105

統計單詞個數

time limit: 1000 ms

memory limit: 65535 k

total submit: 29(20 users)

total accepted: 6(5 users)

rating:

special judge: no

description

給出乙個長度不超過200的由小寫英文本母組成的字母串(約定;該字串以每行20個字母的方式輸入,且保證每行一定為20個)。要求將此字母串分成k份(1

input

有多組測試資料,對於每組測試資料:

第一行有二個正整數(p,k)

p表示字串的行數;

k表示分為k個部分。

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

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

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

output

每組測試資料僅輸出一行,包括乙個整數,表示最大的個數。

sample input

1 3thisisabookyouareaoh4is

aoksabsample output

7hint

樣例輸出解釋

7 this/isabookyoua/reaoh

source

noip2001高中組

recommend

黃李龍

解題思路:用dp[i][j]表示字串0–>i

分成j份所含單詞數,

用sum[a][b]表示a–>b所含單詞數,

則狀態轉移方程為:dp

[i][j]=max(dp[u][j-1]+sum[u+1][i]),

邊界為dp[i][1]=sum[0][i],

求sum[a][b]的值

需要用visit陣列來判斷首字母是否用過,

sum[a][b]=sum[a][b-1]+x

(x是新增的單詞數),

最後答案就是dp

[len-1][k]。

#include #include #include #include #include #include #include #include #include #include #include #include using namespace std;

#define ll long long

const int inf=0x3f3f3f3f;

char ch[25],s[300],s1[10][205];

int a[10],sum[205][205],visit[205],dp[205][45];

int main()

if(i==j) sum[i][j]=cnt;

else sum[i][j]=sum[i][j-1]+cnt;}}

for(int i=0;i

統計乙個文字的字元 單詞數

文字操作是最常見的,以例子的形式來驅動程式的編寫 encoding utf 8 import time keep defnormalize s 大寫轉換成小寫,並且剔除數字等開頭或不在列表中的字元,返回正常字串 result for c in s.lower if c in keep result ...

洛谷P1026 NOIP2001 統計單詞個數

剛看到這個題一直在糾結怎麼劃分成k份再轉移,事實證明我想多了 先預處理出陣列w i j 表示從i到j的單詞個數,如果有多個以i開頭的單詞,只統計一次即可 dp i j 表示從0到i劃分成j份,則 dp i j max dp k j 1 w k 1 j j 1 k 順便 一下用貪心a掉此題的zy大神 ...

python用字典來統計單詞或漢字詞的個數

python用字典來統計單詞或漢字詞的個數 有乙個有如下格式的文字檔案 請 請 兩名 劍士 各自 倒轉 劍尖 右手 握 劍柄 左手 搭於 右手 手背 躬身行禮 兩 人 身子 尚未 站 直 突然 間 白光閃 動 跟著 錚的 一 聲響 雙劍相 交 兩 人 各 退一步 旁 觀眾 人 都 是 咦 的 一聲 ...