poj 3267

来源:互联网 发布:程序员入门书籍 编辑:程序博客网 时间:2024/06/05 20:17

还是没能自己独立做出来,dp还需要练

代码如下

#include<cstdio>#include<iostream>#include<cstring>#include<algorithm>using namespace std;int main(){char a[605][27];char b[305];int w,l;scanf("%d%d",&w,&l);scanf("%s",&b);for(int i=0;i<w;i++)scanf("%s",a[i]);int dp[305];memset(dp,0,sizeof(dp));for(int i=l-1;i>=0;i--){dp[i]=dp[i+1]+1;for(int j=0;j<w;j++){int len=strlen(a[j]);if(l-i>=len&&a[j][0]==b[i]){int pm=i,pd=0;while(pm<l){if(a[j][pd]==b[pm++]){pd++; }if(pd==len){dp[i]=min(dp[i],dp[pm]+pm-i-len);break;}}}}}printf("%d\n",dp[0]); } 


原创粉丝点击