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