信息学竞赛

练习与作业

特色教育 >>信息学竞赛 >>练习与作业

动态规划练习二

来源:程军康|编辑日期:2009-11-06 12:10:27|点击数: |发布:55

任务名:PREFLX

   一些生物体的复杂结构可以用其基元的序列表示,而一个基元用一个大写英文

字符串表示。生物学家的一个问题就是将一个这样的长序列分解为基元(字符串)

的序列,对于给定的基元的集合P,如果可以从中选出N个基元P1P2,…Pn

将它们各自对应的字符串依次联接后得到一个字符串S,称S可以由基元集合P

构成。在从P中挑选基元时,一个基元可以使用多次,也可以不用,例如,序列

ABABACABAB可以由基元集合{A,AB,BA,CA,BBC}构成。

字符串的前K个字符称为该字符串的前缀,其长度为K.请写一个程序,对于

输入的基元集合P和字符串T,求出一个可以由基元集合P构成的字符串T的前

缀,要求该前缀的长度尽可能的长,输出其长度。

输入数据

有两个输入文件INPUT.TXTDATA.TXT.

INPUT.TXT的第一行是基元集合P中基元的数目N1<=N<=100),阴÷

随后有2N行,每两行描述一个基元。第一行为该基元的长度L1<=L<=20)。

随后一行是一个长度为L的大写英文字符串,表示该基元。每个基元互不相同。

文件DATA.TXT描述要处理的字符串T,每一行行首有一个大写英文字母,

最后一行是一个字符“.”

上一篇:

下一篇: