poj3267The Cow Lexicon
来源:互联网 发布:淘宝中差评屏蔽软件 编辑:程序博客网 时间:2024/06/07 11:27
http://poj.org/problem?id=3267
第一个接触动态规划:
状态方程:
这篇博客比较好:http://user.qzone.qq.com/289065406/blog/1299653270
#include<stdio.h>#include<string.h>char dict[600][25],mesg[300];int dp[301],wordlen[600];int min(int a,int b){return a<b?a:b;}int main(){int w,L,i,j,len,pm,pd;while(scanf("%d %d",&w,&L)!=EOF){scanf("%s",mesg);for(i=0;i<w;i++){scanf("%s",dict[i]);wordlen[i]=strlen(dict[i]);} /*Initial*/dp[L]=0;//dp[i]表示从i到L所删除的字符数/*Dp-Enum*/for(i=L-1;i>=0;i--) //从message尾部开始向前检索{dp[i]=dp[i+1]+1; //字典单词和message无法匹配时,删除的字符数(最坏的情况)for(j=0;j<w;j++) //对字典单词枚举{len=wordlen[j];if(len<=L-i && dict[j][0]==mesg[i]) //单词长度小于等于当前待匹配message长度{ //且单词头字母与信息第i个字母相同pm=i; //message的指针pd=0; //单词的指针while(pm<L) //单词逐字匹配{if(dict[j][pd]==mesg[pm++])pd++;if(pd==len){ //字典单词和message可以匹配时,状态优化(更新)dp[i]=min(dp[i],dp[pm]+(pm-i)-len);//dp[pm]表示从pm到L删除的字符数break; //(pm-i)-pd表示从i到pm删除的字符数} //则dp[pm]+(pm-i)-pd表示从i到L删除的字符数}}}}printf("%d\n",dp[0]);}return 0;}
0 0
- poj3267The Cow Lexicon
- POJ3267The Cow Lexicon(AC)
- poj3267The Cow Lexicon(简单dp 虽然我并不是很会)
- POJ3267 The Cow Lexicon
- 3267 The Cow Lexicon
- The Cow Lexicon
- POJ3267--The Cow Lexicon
- POJ_3267_The Cow Lexicon ( DP )
- poj3267 The Cow Lexicon
- POJ3276---The Cow Lexicon
- The Cow Lexicon
- The Cow Lexicon(POJ_3267)
- poj3267 The Cow Lexicon
- POJ3267-The Cow Lexicon
- The Cow Lexicon
- The Cow Lexicon POJ
- POJ3276 The Cow Lexicon
- pku 3267 The Cow Lexicon
- 人机交互
- SpringMVC 上下文webApplicationContext
- App.Config详解及读写操作
- 打印100~200 之间的素数
- 第二轮考核结束!!!
- poj3267The Cow Lexicon
- Kali进行web渗透笔记(三)
- 一道题解读“类型强转”在内存中发生了什么
- iOS每日一记之——————————iOS性能优化
- 九度OJ 1005
- 在Android Studio中进行NDK开发的一般流程
- java并发编程(二)-- 线程中断
- java监听器的原理与实现
- 给自定义圆头像加一个边