BZOJ 1633 [Usaco2007 Feb]The Cow Lexicon 牛的词典(单调DP)
2024-10-01 06:53:45
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1633
【题目大意】
给出一个字符串和一个字符串集,
问要删去多少个字符该字符串才可以被字符串集完全表示
【题解】
dp[i]表示长度为i时候的答案,单调dp即可
【代码】
#include <cstdio>
#include <algorithm>
#include <cstring>
using namespace std;
const int N=1010;
char s[N],c[N][35];
int n,len,k,dp[N];
int main(){
scanf("%d%d %s",&n,&len,s+1);
for(int i=1;i<=n;i++)scanf("%s",c[i]+1);
for(int i=1;i<=len;i++){
dp[i]=i;
for(int j=1;j<=n;j++){
int l=strlen(c[j]+1),cnt=0;
for(k=i;k;k--){
if(c[j][l]==s[k])l--;
else cnt++;
if(!l)break;
}if(!l)dp[i]=min(dp[i],dp[k-1]+cnt);
}
}printf("%d\n",dp[len]);
return 0;
}
最新文章
- 20169212《Linux内核原理与分析》第七周作业
- ASP.NET MVC中,怎么使用jquery/ajaxForm上传文件
- Linux命令练级初级
- mysql的SQL_CALC_FOUND_ROWS 使用
- TIMESTAMP和DATETIME的区别
- hdu3006(状态压缩)
- iOS开发之视差滚动视图
- Xcode新建python项目
- JDBC数据源 使用JNDI连接池实现数据库的连接
- zabbix自动清理30天前的数据
- 20181115 python-第一章学习小结part3
- 查看当前mysql使用的配置文件是哪个
- vue-cli 跳转方式
- 《剑指offer》第四十四题(数字序列中某一位的数字)
- 深入聊聊Java多线程
- Spring 学习01
- 图片标注工具LabelImg使用教程
- Python3 判断文件和文件夹是否存在、创建文件夹
- 【转载】VC操作剪切板
- LaTeX:Question &; Answer