题目地址:http://acm.hdu.edu.cn/showproblem.php?pid=1423
1 5 1 4 2 5 -12 4 -12 1 2 4
2
#include <stdio.h> #include <string.h> #define MAX 501 int T; int seq1[MAX], seq2[MAX]; int len1, len2; int dp[MAX]; int LCIS(){ int i, j; int Max; memset(dp, 0, sizeof(dp)); for (i = 1; i <= len1; ++i){ Max = 0; for (j = 1; j <= len2; ++j){ if (seq1[i] > seq2[j] && Max < dp[j]) Max = dp[j]; if (seq1[i] == seq2[j]) dp[j] = Max + 1; } } Max = 0; for (i = 1; i <= len2; ++i){ if (Max < dp[i]) Max = dp[i]; } return Max; } int main(void){ int i; scanf("%d", &T); while (T-- != 0){ scanf("%d", &len1); for (i = 1; i <= len1; ++i) scanf("%d", &seq1[i]); scanf("%d", &len2); for (i = 1; i <= len2; ++i) scanf("%d", &seq2[i]); printf("%d\n", LCIS()); if (T) putchar(‘\n‘); } return 0; }
HDOJ 1423 Greatest Common Increasing Subsequence -- 动态规划,布布扣,bubuko.com
HDOJ 1423 Greatest Common Increasing Subsequence -- 动态规划
原文:http://blog.csdn.net/jdplus/article/details/20131931