洛谷P1026

题目传送门:P1026 [NOIP2001 提高组] 统计单词个数 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

题目描述

给出一个长度不超过 200200 的由小写英文字母组成的字母串(该字串以每行 2020 个字母的方式输入,且保证每行一定为 2020 个)。要求将此字母串分成 kk 份,且每份中包含的单词个数加起来总数最大。

每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串 this 中可包含 this 和 is,选用 this 之后就不能包含 th

单词在给出的一个不超过 66 个单词的字典中。

要求输出最大的个数。

输入格式

每组的第一行有两个正整数 p,kp,k。 pp 表示字串的行数,kk 表示分为 kk 个部分。

接下来的 pp 行,每行均有 2020 个字符。

再接下来有一个正整数 ss,表示字典中单词个数。 接下来的 ss 行,每行均有一个单词。

输出格式

11个整数,分别对应每组测试数据的相应结果。

输入输出样例

输入 #1

1 3
thisisabookyouareaoh
4
is
a
ok
sab

输出 #1

7

说明/提示

【数据范围】
对于 100%100% 的数据,2≤k≤402≤k≤40,1≤s≤61≤s≤6。

【样例解释】 划分方案为 this / isabookyoua / reaoh

【题目来源】

NOIP 2001 提高组第三题

给出一个长度不超过200的由小写英文字母组成的字母串(约定该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母串分成k份(1<k≤40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可包含this和is,选用this之后就不能包含th)。

单词在给出的一个不超过6个单词的字典中。

要求输出最大的个数。

输入 每组的第一行有2个正整数(p,k)
p表示字串的行数,k表示分为k个部分。

接下来的p行,每行均有20个字符。
再接下来有1个正整数s,表示字典中单词个数。(1≤s≤6)
接下来的s行,每行均有1个单词。

输出: 1个整数,分别对应每组测试数据的相应结果。

1·关于 (本题工具)

string相当于用“ ”括起来的的几个字符,所以string表示了一个字符串

(1).构造函数:

string(const char *s);//用char类字符串s初始化        
string(int n,char c;//用n个字符c初始化
string s或string s="hello";

(2).字符操作:string s;

  • s[x]返回当前字符串中第x个字符的位置,还有s()提供范围检查。原型是
    const char &operator [ ] (int n) const;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

夏梓乔

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值