POJ - 3267 The Cow Lexicon
来源:互联网 发布:恒星际航行 知乎 编辑:程序博客网 时间:2024/05/04 22:51
题意:求最少将母串删除几个,使得由字典里字符串连接起来,刚开始是想用dp[i]表示母串前i个有字典里的字符串其中一个组成的最小删除个数,但这明显要从字典里面最短的开始表示啊,那之前的就无法考虑了,所以从后面开始考虑,用dp[i]表示从i到母串末由字典里的字符串组成的最少删除个数,那么每次的i最坏的情况就是删了,不然就枚举字典里的字符串,找出最小的删除个数,删除的个数计算也很容易
#include <iostream>#include <cstdio>#include <cstring>#include <algorithm>using namespace std;const int MAXN = 605;int dp[MAXN];char s[MAXN],dit[MAXN][30];int w,l;int main(){ while (scanf("%d%d%*c",&w,&l) != EOF){ scanf("%s",s); for (int i = 1; i <= w; i++) scanf("%s",dit[i]); for (int i = 0; i < l; i++) dp[i] = l; dp[l] = 0; for (int i = l-1; i >= 0; i--){ dp[i] = dp[i+1] + 1; for (int j = 1; j <= w; j++){ int n = strlen(dit[j]); if (dit[j][0] == s[i] && n <= l-i){ int k,t = 0; for (k = i; k < l; k++) if (s[k] == dit[j][t]) if (++t == n) break; if (k < l) dp[i] = min(dp[i],dp[k+1]+k-i+1-n); } } } printf("%d\n",dp[0]); } return 0;}
- poj 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- poj 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- poj 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- poj-3267-The Cow Lexicon
- POJ 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- POJ 3267 The Cow Lexicon
- POJ - 3267 The Cow Lexicon
- poj-3267-The Cow Lexicon
- POJ 3267 The Cow Lexicon
- POJ 3267--The Cow Lexicon
- POJ 3267 The Cow Lexicon
- 【POJ 3267】 The Cow Lexicon
- The Cow Lexicon(POJ--3267
- Android抽象布局——include、merge 、ViewStub
- ArcGIS技术:[1]ArcMap图层基础操作
- HDU 3757 Evacuation Plan
- PCB中的过孔
- 解决toast(Toast Open Automation System for Test)自动化测试框架安装出现的问题
- POJ - 3267 The Cow Lexicon
- Linux fd文件描述符的本来面目
- CSS学习篇核心之——定位
- 软件工程—总体规划、需求分析
- NoSQL的存储架构——HBase
- 黑马程序员-----程序员之路_____JDK1.5新特性之泛型
- tomcat中三种部署项目的方法
- 【总结】在两个Activity之间进行跳转时出错原因分析(二)——在AndroidManifest.xml未声明导致
- 南阳理工OJ_n-1位数