题目大意:

输入w,l; w是接下来的字典内的单词个数,l为目标字符串长度

输入目标字符串

接下来w行,输入字典内的各个单词

输出目标字符串最少删除多少个字母就能变成只由字典内的单词组成的字符串

Sample Input

6 10
browndcodw
cow
milk
white
black
brown
farmer

Sample Output

2

 
当输入为
2 6
reader
rad
reder
输出为
1
即单词不能相互覆盖 只能各自独立组合
#include <algorithm>
#include <cstring>
#include <stdio.h>
#include <string.h>
#include <cstdio>
#include <stdlib.h>
using namespace std;
int main()
{
int w,l;
while(~scanf("%d%d",&w,&l))
{
char ch[],dic[][];
scanf("%s",ch);
for(int i=;i<w;i++)
scanf("%s",dic[i]);
int dp[];
memset(dp,,sizeof(dp));
for(int i=;i<l;i++)
{ // 枚举结尾 再从各个单词尾部开始逐个向前对比
dp[i+]=dp[i]+;
for(int j=;j<w;j++) // 与字典中的各个单词对比
{
int len=strlen(dic[j]);
int p=i,q=len-; // p为主串的指向 q为当前字典单词的指向
while(p>=&&q>=) /// 向前推至 单词匹配完 或 到达主串的开头
{
if(dic[j][q]==ch[p])
q--,p--; // 若可匹配 指向p q均前移
else p--; // 若不可 则主串指向p前移
}
if(q<) dp[i+]=min(dp[i+],dp[p+]+i-p-len);
/// q<0 说明当前单词在主串具有匹配串 所以指向走到了0之前 /// i-p 为主串指向的移动长度 len 为单词长度
/// 差值 i-p-len 即为当前匹配串需删掉的字母个数 /* 两者取小
dp[i] + 1
前i位最少删除个数 + 删除当前位 dp[p+1] + i-p-len
(不含当前匹配串的)前p位最少删除个数 + (p之后的)当前匹配串中需删除个数 */ }
}
printf("%d\n",dp[l]);
} return ;
}

USACO 2007 February Silver The Cow Lexicon /// DP oj24258的更多相关文章

  1. USACO 2007 November Silver Best Cow Line /// oj21653

    题目大意: 输入n 接下来n行字母 在队头和队尾中选出较小的放入新的队列 Sample Input 6ACDBCB Sample Output ABCBCD   注意相同的情况 先判断内层的大小 输出 ...

  2. poj3267--The Cow Lexicon(dp:字符串组合)

    The Cow Lexicon Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8211   Accepted: 3864 D ...

  3. POJ3267 The Cow Lexicon(DP+删词)

    The Cow Lexicon Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 9041   Accepted: 4293 D ...

  4. POJ 3267-The Cow Lexicon(DP)

    The Cow Lexicon Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 8252   Accepted: 3888 D ...

  5. USACO 2011 February Silver Cow Line /// 康拓展开模板题 oj22713

    题目大意: 输入n k,1-n的排列,k次操作 操作P:输入一个m 输出第m个排列 操作Q:输入一个排列 输出它是第几个排列 Sample Input 5 2P3Q1 2 5 3 4 Sample O ...

  6. The Cow Lexicon(dp)

    Time Limit: 2000MS   Memory Limit: 65536K Total Submissions: 7290   Accepted: 3409 Description Few k ...

  7. POJ3267 The Cow Lexicon(dp)

    题目链接. 分析: dp[i]表示母串从第i位起始的后缀所对应的最少去掉字母数. dp[i] = min(dp[i+res]+res-strlen(pa[j])); 其中res 为从第 i 位开始匹配 ...

  8. BZOJ1915[USACO 2010 Open Gold 1.Cow Hopscotch]——DP+斜率优化

    题目描述 奶牛们正在回味童年,玩一个类似跳格子的游戏,在这个游戏里,奶牛们在草地上画了一行N个格子,(3 <=N <= 250,000),编号为1..N.就像任何一个好游戏一样,这样的跳格 ...

  9. [USACO 2012 Jan Silver] Bale Share【DP】

    传送门:http://www.usaco.org/index.php?page=viewproblem2&cpid=107 没想到太不应该了,真的不应该啊! f[i][j][k]表示前i个包, ...

随机推荐

  1. mysql 删除同样记录只保留一条

    delete from fa_order_account ) as a) ) as b)

  2. PHP FTP 常量

    常量 描述 PHP FTP_ASCII   3 FTP_TEXT   3 FTP_BINARY   3 FTP_IMAGE   3 FTP_TIMEOUT_SEC   3 FTP_AUTOSEEK   ...

  3. bzoj1006题解

    [题意分析] 给你一张弦图,求图的最小染色数. [解题思路] 这篇讲稿已经讲得很详尽了.. 直接求完美消除序列,然后倒着染色即可.复杂度O(n2+nm). [参考程序] 求完美消除序列我是用的MCS( ...

  4. 39 Ubuntu下配置python的vscode开发环境

    0 引言 最近想在ubuntu下搞深度学习,首先配置了python的vscode开发环境.在配置python时,选择了Anaconda3.x,保证了其相对于系统python2.x的独立性.另外,vsc ...

  5. linux环境下创建domain

    首先进入weblogic的安装目录,具体如下: cd /wls/Oracle/Middleware/Oracle_Home/wlserver/common/bin 图形化创建 1.下载xmanager ...

  6. (转)实现这两个接口ModelDriven<T>,Preparable有什么用?

    转:http://www.cnblogs.com/guanghuiqq/archive/2012/08/24/2654300.html 实现了ModelDriven就必须实现getModel这个方法, ...

  7. HDU5669

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:传送门  Portal  原题目描述在最下面.  给你n个点 ...

  8. Hadoop国内主要发行版本

    Hadoop主要版本 目前国内使用的不收费的Hadoop版本主要包括以下3个: Apache hadoop Cloudera的CDH Hortonworks版本(Hortonworks Data Pl ...

  9. Python中字典的详细用法

    #字典 #字典是Python中唯一内建的映射类型.字典中没有特殊的顺序,但都是存储在一个特定的键(key)下面,键可以是数字,字符串,甚至是元组 #一.字典的使用 #在某些情况下,字典比列表更加适用: ...

  10. spring boot资源文件配置读取

    一般业务配置,尽量新建自己的配置文件,来读取,而不是配置在application.properties或application-*.properties或yml/yaml配置中. applicatio ...