首页 > 其他 > 详细

HDU 1159 最基础的dp LCS问题

时间:2014-03-19 02:20:16      阅读:520      评论:0      收藏:0      [点我收藏+]

简单的dp 最长公共子序列问题 dp的方程如下:

bubuko.com,布布扣

AC代码如下

bubuko.com,布布扣
 1 #include<stdio.h>
 2 #include<string.h>
 3 
 4 const int max_n=1000;
 5 
 6 int dp[max_n][max_n];
 7 char s1[max_n],s2[max_n];
 8 
 9 int max(int a,int b)
10 {
11     return a>b?a:b;
12 }
13 
14 
15 
16 int main(void)
17 {
18     int i,j;
19     int len1=strlen(s1);
20     int len2=strlen(s2);
21     while(scanf("%s%s",s1,s2)!=EOF)
22     {
23         memset(dp,0,sizeof(dp));
24         len1=strlen(s1);
25         len2=strlen(s2);
26         for(i=0;i<len1;i++)
27             for(int j=0;j<len2;j++)
28         {
29             if(s1[i]==s2[j]) dp[i+1][j+1]=dp[i][j]+1;
30             else
31             {
32                 dp[i+1][j+1]=max(dp[i][j+1],dp[i+1][j]);
33             }
34         }
35         printf("%d\n",dp[len1][len2]);
36     }
37     return 0;
38 }
bubuko.com,布布扣

HDU 1159 最基础的dp LCS问题,布布扣,bubuko.com

HDU 1159 最基础的dp LCS问题

原文:http://www.cnblogs.com/VOID-133/p/3608944.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!