Greatest Common Increasing SubsequenceTime Limit: 2000/1000 MS (Java/Others)Memory Limit: 65536/32768 K (Java/Others)Total Submission(s): 5557Accepted Submission(s): 1816
Problem Description
This is a problem from ZOJ 2432.To make it easyer,you just need output the length of the subsequence.
Input
Each sequence is described with M – its length (1 <= M <= 500) and M integer numbers Ai (-2^31 <= Ai < 2^31) – the sequence itself.
Output
output print L – the length of the greatest common increasing subsequence of both sequences.
Sample Input
151 4 2 5 -124-12 1 2 4
Sample Output
2
Source
链接:?pid=1423
思路:求最长递增公共子序列模板题
#include <stdio.h>#include <string.h>#include <algorithm>using namespace std;int n,m,a[505],b[505];int LICS(){int ans=0;int dp[505]={0};for(int i=1;i<=n;i++){int len=0;for(int j=1;j<=m;j++){if(a[i]>b[j])len=max(len,dp[j]);else if(a[i]==b[j])dp[j]=max(dp[j],len+1);ans=max(ans,dp[j]);}}return ans;}int main(){int t,i;scanf("%d",&t);while(t–){scanf("%d",&n);for(i=1;i<=n;i++){scanf("%d",&a[i]);}scanf("%d",&m);for(i=1;i<=m;i++){scanf("%d",&b[i]);}printf("%d\n",LICS());if(t) printf("\n");}return 0;}
版权声明:本文为博主原创文章,未经博主允许不得转载。
,寂寞时,想想我的影子,我会在远方给你一个微笑;难过时,