hdu 4323 编辑距离(经典) 动态规划
2013-08-12 10:12
239 查看
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4323
题目大意:给出n个字符串s1[1-n];,再给出m个 字符串和编辑距离临界值s2[1-m],kk[1-m],依次求这m个字符串与n个字符串的编辑距离小于编辑距离临界值的个数。即:s2[i]与s1[1-n]的编辑距离小于kk[i]的个数 (1<=i<=m).
注意:kk[i]的值较小,对于判断很有用,因为若字符串长度差大于kk,编辑距离必定大于kk[i];
题目大意:给出n个字符串s1[1-n];,再给出m个 字符串和编辑距离临界值s2[1-m],kk[1-m],依次求这m个字符串与n个字符串的编辑距离小于编辑距离临界值的个数。即:s2[i]与s1[1-n]的编辑距离小于kk[i]的个数 (1<=i<=m).
注意:kk[i]的值较小,对于判断很有用,因为若字符串长度差大于kk,编辑距离必定大于kk[i];
#include<iostream> #include<cstdio> #include<stdlib.h> #include<string> #include<cstring> #include<cmath> #include<queue> using namespace std; int dp[20][20]; char s1[1501][20]; char s2[20]; int len[1501]; int min(int a,int b,int c) { int q=a; if(b<q) q=b; if(c<q) q=c; return q; } int main() { int T,n,m,kk; int i,j,k; int sum,ans,len1,cas=0; scanf("%d",&T); while(T--) { memset(len,0,sizeof(len)); cas++; scanf("%d%d",&n,&m); for(i=1;i<=n;i++) { scanf("%s",s1[i]+1); len[i]=strlen(s1[i]+1); } printf("Case #%d:\n",cas); for(int k1=1;k1<=m;k1++) { sum=0; scanf("%s%d",s2+1,&kk); len1=strlen(s2+1); for(int k2=1;k2<=n;k2++) { if(abs(len1-len[k2])>kk) //重要的判断 continue; memset(dp,0,sizeof(dp)); for(i=0;i<=len1;i++) dp[i][0]=i; for(j=0;j<=len[k2];j++) dp[0][j]=j; for(i=1;i<=len1;i++) { for(j=1;j<=len[k2];j++) { int cost; if(s2[i]==s1[k2][j]) cost=0; else cost=1; dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1,dp[i-1][j-1]+cost); // dp[i][j]=min(dp[i-1][j]+1,dp[i][j-1]+1); //dp[i][j]=min(dp[i][j],dp[i-1][j-1]+cost); } } if(dp[len1][len[k2]]<=kk) sum++; } printf("%d\n",sum); } } return 0; }
相关文章推荐
- hdu(4323)HDU 4323 Magic Number 编辑距离(经典DP)
- 多校第三场:hdu(4323:编辑距离算法)
- HDU 4323 Magic Number(编辑距离DP)
- HDU 4323 bk树 编辑距离
- hdu 4323 Magic Number (dp,编辑距离)
- HDU 4323 编辑距离DP
- HDU 4323——Magic Number——————【dp求编辑距离】2012——MUT——3
- HDU 4323 Magic Number(编辑距离 DP)
- 字符串编辑距离算法(hdu 4271 hdu 4323 hdu 3540)
- HDU 4323 bk树 编辑距离
- hdu 4323 Magic Number(编辑距离)
- HDU 4323 Magic Number 编辑距离
- 编辑距离和最长公共子序列(动态规划经典题)
- HDU 4323 编辑距离DP
- LeetCode-Edit Distance 编辑距离与动态规划
- HDU 4323 Magic Number 编辑距离(经典DP)
- 算法_动态规划_编辑距离问题
- 编辑距离(leetcode)--动态规划
- [置顶] HDU 动态规划(46道经典例题)
- TZOJ 1072: 编辑距离(动态规划)