题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1159
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 37551 Accepted Submission(s): 17206
1 #include <stdio.h> 2 #include <string.h> 3 #include <algorithm> 4 5 using namespace std; 6 7 char x[1000], y[1000]; 8 int b[1000][1000], c[1000][1000]; 9 void LCS() 10 { 11 int i,j; 12 int len1 = strlen(x); 13 int len2 = strlen(y); 14 for (i = 0; i <= len1; i ++) b[i][0] = 0; 15 for (j = 0; j <= len2; j ++) b[0][j] = 0; 16 17 for (i = 1; i <= len1; i ++) 18 { 19 for (j = 1; j <= len2; j ++) 20 { 21 if (x[i-1] == y[j-1]) 22 b[i][j] = b[i-1][j-1] + 1; 23 else 24 b[i][j] = max(b[i-1][j],b[i][j-1]); 25 } 26 } 27 printf("%d\n",b[len1][len2]); 28 } 29 30 int main () 31 { 32 while (scanf("%s%s",x,y)!=EOF) 33 { 34 LCS(); 35 } 36 return 0; 37 }
hdu 1159 Common Subsequence(最长公共子序列)
原文:http://www.cnblogs.com/yoke/p/6657079.html