统计单词个数

间谍 2001-12-09 10:19:55
给出一个长度不超过200的由小写英文字母组成的字符串(约定:该字串以每行20个字母的方式输入,且保证每行一定为20个)。要求将此字母划分成k分(1<k<=40),且每份中包含的单词个数加起来总数最大(每份中包含的单词可以部分重叠。当选用一个单词之后,其第一个字母不能再用。例如字符串this中可以包含this和is,选用this之后就不能包含th).
单词给出的一个不超过20个单词的字典中。
要求输出最大的个数。
输入格式
全部输入数据放在文本文件input3.dat中,其格式如下:
第一行为一个正整数(0<n<=5)表示有n组测试数据
每组的第一行有二个正整数:(p,k)
p表示字串的行数;
k表示分为k个部分。
接下来的p行,每行均有20个字符。
再接下来有一个正整数s,表示字典中单词个数。(1<=s<=6)
接下来的s行,每行均有一个单词。
输出格式
结果输出至屏幕,每行有一个整数,分别对应每组测试数据的相应结果。
样例:
输入:1
1 3
thisisabookyouareaoh
4
is
a
ok
sab
输出:
7

这是分区联赛的第三题,请哪位高手用C/C++语法写出完整的源码
...全文
232 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
NewViewer 2001-12-10
  • 打赏
  • 举报
回复
因此,游标可以在这些记录位之间来回试探
NewViewer 2001-12-10
  • 打赏
  • 举报
回复
1.按单词首字母分类,记录以x(x=a..z)为首的词在主串中匹配的开始和结束位置。
如: count(i)={(3,4),(5,6)}
count(s)={(6,8)}
...
2.为使总数最多,则应尽可能把每一类的位置叉开,同时要考虑到对其他类的破坏。
one_add_one 2001-12-10
  • 打赏
  • 举报
回复
我还不知道我的程序对不对呀:(
starfish 2001-12-10
  • 打赏
  • 举报
回复
哇,程序这么短?我原来以为应该比较复杂呢,我来看看你的程序先……
starfish 2001-12-10
  • 打赏
  • 举报
回复
呵呵1+1也来了呀,居然比我快一步,FT!
不过看来我的第一感还是对的:)
one_add_one 2001-12-10
  • 打赏
  • 举报
回复
对了,你有没有测试数据?
one_add_one 2001-12-10
  • 打赏
  • 举报
回复
DEFINT A-Z
DIM x(200, 40)
DIM w$(6)
DIM y(200)
OPEN "input3.dat" FOR INPUT AS #1
INPUT #1, n
FOR i = 1 TO n
INPUT #1, p, k
l$ = ""
FOR j = 1 TO p
LINE INPUT #1, a$
l$ = l$ + a$
NEXT
INPUT #1, s
FOR j = 1 TO s
LINE INPUT #1, w$(j)
NEXT

FOR j = 1 TO p * 20
y(j) = 0
FOR u = 1 TO s
IF MID$(l$, j, LEN(w$(u))) = w$(u) THEN
IF y(j) < LEN(w$(u)) THEN y(j) = LEN(w$(u))
END IF
NEXT
NEXT
FOR a = 1 TO p * 20
FOR b = 1 TO k
x(a, b) = 0
NEXT
g = 0

FOR c = 1 TO a
IF y(c) <= a - c + 1 AND y(c) > 0 THEN
g = g + 1
END IF
NEXT
x(a, 1) = g
NEXT
FOR a = 2 TO k
FOR b = a TO p * 20
FOR c = a - 1 TO b - 1
g = 0
x(b, a) = x(c, a - 1)
FOR d = c + 1 TO b
IF y(d) > 0 AND y(d) <= b - d + 1 THEN g = g + 1
NEXT
IF x(b, a) < x(c, a - 1) + g THEN x(b, a) = x(c, a - 1) + g
NEXT
NEXT
NEXT
PRINT x(p * 20, k)
NEXT
CLOSE #1
one_add_one 2001-12-10
  • 打赏
  • 举报
回复
海星大哥,你也在线呀:)
starfish 2001-12-10
  • 打赏
  • 举报
回复
第一感,动态规划,呵呵
one_add_one 2001-12-10
  • 打赏
  • 举报
回复
这个可以用DP
我有BAS的原程序。那天在网吧一边聊天一边打程序搞定的。要不要?
mathe 2001-12-10
  • 打赏
  • 举报
回复
考虑了一下,好像可以用荣斥原理?
间谍 2001-12-10
  • 打赏
  • 举报
回复
拜托哪位看看呀

33,028

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧