hdu 4323 Magic Number dp 多校联合赛(三)第四题
2012-08-05 13:55
330 查看
如果a[i],b[j]相等dp[i][j]=dp[i-1][j-1]; 如果不想等 dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1;
注意最后dp[lena-1][lenb-1]<=y就行,
注意最后dp[lena-1][lenb-1]<=y就行,
#include<iostream> #include<cstdio> #include<string.h> using namespace std; int n,m,dp[15][15];int y; int judge(char a[],char b[]){ int lena=strlen(a); int lenb=strlen(b); if(lena-lenb>y||lenb-lena>y) return 10; // cout<<lena<<" "<<lenb<<endl; for(int i=0;i<lena;i++) dp[i][0]=i; for(int i=0;i<lenb;i++) dp[0][i]=i; for(int i=1;i<lena;i++){ for(int j=1;j<lenb;j++){ if(a[i]==b[j]) dp[i][j]=dp[i-1][j-1]; else dp[i][j]=min(dp[i-1][j],min(dp[i][j-1],dp[i-1][j-1]))+1; } } return dp[lena-1][lenb-1]; } char a[1605][15],b[15]; int main(){ int t,p=1; scanf("%d",&t); while(t--){ scanf("%d%d",&n,&m); for(int i=0;i<n;i++){ a[i][0]='*'; scanf("%s",a[i]+1); } printf("Case #%d:\n",p++); while(m--){ scanf("%s%d",b+1,&y); b[0]='*'; int sum=0; for(int i=0;i<n;i++){ if(judge(a[i],b)<=y) sum+=1; } printf("%d\n",sum); } } return 0; }
相关文章推荐
- HDU 4323——Magic Number——————【dp求编辑距离】2012——MUT——3
- hdu 5396 Expression 2015多校联合训练赛#9 动态规划 dp
- 2013 多校联合 F Magic Ball Game (hdu 4605)
- hdu 4324 Triangle LOVE 拓扑排序 多校联合赛(三)第四题
- 【HDU 4905 多校联合】The Little Devil II【DP+四边形不等式优化】
- hdu 4899 Hero meet devil 2014多校联合训练赛 状态压缩dp 最长公共子序列
- 【HDU 4901 多校联合】The Romantic Hero【DP】
- hdu 3943 K-th Nya Number 2011多校11 数位dp
- 【HDU 4863 多校联合】Centroid of a Tree【树形DP】
- hdu 5378 Leader in Tree Land 2015多校联合训练赛 树形dp
- hdu 3886 - Final Kichiku “Lanlanshu”(数位dp)多校联合
- 2013 多校联合 F Magic Ball Game (hdu 4605)
- hdu 4661 Message Passing 树形dp (2013多校联合)
- hdu 4632 Palindrome subsequence 区间dp 多校联合训练第四场
- HDU 5303 Delicious Apples (DP) 2015多校联合第二场
- 2013 多校联合 I I-number(hdu 4608)
- hdu 5406 2015 多校联合训练赛#10 dp
- [dp] hdu 5389 多校联合第八场 Zero Escape
- hdu 5410 CRB and His Birthday 2015多校联合训练赛#10 dp 动态规划
- hdu 4679 Terrorist’s destroy 树形dp水题 (2013多校联合)