• 【dp】P1026 统计单词个数


    题目描述

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

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

    要求输出最大的个数。

    输入输出格式

    输入格式:

    每组的第一行有22个正整数(p,kp,k)

    pp表示字串的行数,kk表示分为kk个部分。

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

    再接下来有11个正整数ss,表示字典中单词个数。(1 le s le 61s6)

    接下来的ss行,每行均有11个单词。

    输出格式:

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

    输入输出样例

    输入样例#1: 复制
    1 3
    thisisabookyouareaoh
    4
    is
    a
    ok
    sab
    输出样例#1: 复制
    7

    【思路】:

    首先看到题好像是个划分型的dp,,然后竟然有一个限制:
    一个单词被用过后首字母不能再用,所以如果(j,i)区间以j为首存在单词,则:s[j][i]=s[j+1][i]+1 否则s[j][i]=s[j+1][i]

    f[i][k]=max(f[j][k-1],s[j+1][i])(i为位置,k为次数,s为区间单词数)

    代码:

  • 相关阅读:
    公共控件
    winform 窗口 属性
    ADO
    笔记备忘
    常识 备忘
    Symbol
    Promise
    定义类 属性 方法 执行
    x is string str ======x is string 变量名
    ManualResetEvent多线程进行,全部完成后,回调
  • 原文地址:https://www.cnblogs.com/pyyyyyy/p/10794979.html
Copyright © 2020-2023  润新知