hdu1159--------------最长公共子序列(模板)

没事敲了个最长公共子序列,按照自己笔记本上模板算法! 先敲了一个递归算法的,敲时就感觉费事儿!一提交,果断超时!无语,..........

还好哥有个非递归模板,敲完一交。31ms!   差距好大啊,以后就用非递归吧!

模板在此

AC:

#include<stdio.h>
#include<string.h>
char a[10001],b[10001];
int c[10001][10001];

int lcs_len(int m,int n)
{
 int i,j;
 for(i=0;i<=m;i++)
 c[i][0]=0;
 for(i=0;i<=n;i++)
 c[0][i]=0;
 for(i=1;i<=m;i++)
 {
  for(j=1;j<=n;j++)
  {
   if(a[i-1]==b[j-1])
   c[i][j]=c[i-1][j-1]+1;
   else if(c[i-1][j]>=c[i][j-1])
   c[i][j]=c[i-1][j];
   else
   c[i][j]=c[i][j-1];
  }
 }
 return c[m][n];
}


int main()
{
 int m,n,k;
 while(scanf("%s%s",a,b)!=EOF)
 {
  m=strlen(a);
     n=strlen(b);
     printf("%d\n",lcs_len(m,n));
 }
 return 0;
}

posted on 2012-03-13 14:51  hrbust_09zhangyabin  阅读(121)  评论(0编辑  收藏  举报