HDU-1423-Greatest Common Increasing Subsequence-最长公共上升子序列模版
Posted ofshk
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了HDU-1423-Greatest Common Increasing Subsequence-最长公共上升子序列模版相关的知识,希望对你有一定的参考价值。
This is a problem from ZOJ 2432.To make it easyer,you just need output the length of the subsequence.
InputEach sequence is described with M - its length (1 <= M <= 500) and M integer numbers Ai (-2^31 <= Ai < 2^31) - the sequence itself.Outputoutput print L - the length of the greatest common increasing subsequence of both sequences.Sample Input
1
5
1 4 2 5 -12
4
-12 1 2 4
Sample Output
2
注意一下控制格式
1 #include<stdio.h> 2 #include<iostream> 3 #include<algorithm> 4 #include<cmath> 5 #include<iomanip> 6 #include<string.h> 7 using namespace std; 8 9 int a[550]; 10 int b[550]; 11 int dp[550]; 12 13 int main() 14 15 std::ios::sync_with_stdio(false); 16 cin.tie(0); 17 cout.tie(0); 18 int tt; 19 cin>>tt; 20 while(tt--) 21 22 memset(a,0,sizeof(a)); 23 memset(b,0,sizeof(b)); 24 memset(dp,0,sizeof(dp)); 25 int p,q; 26 cin>>p; 27 for(int i=0;i<p;i++) 28 cin>>a[i]; 29 cin>>q; 30 for(int i=0;i<q;i++) 31 cin>>b[i]; 32 int maxx; 33 for(int i=0;i<p;i++) 34 35 maxx=0;//每次都要恢复 36 for(int j=0;j<q;j++) 37 38 if(a[i]>b[j]) 39 maxx=max(dp[j],maxx); 40 else if(a[i]==b[j]) 41 dp[j]=maxx+1; 42 43 44 int ans=0; 45 for(int i=0;i<q;i++) 46 ans=max(ans,dp[i]); 47 if(tt) 48 cout<<ans<<endl<<endl; 49 else 50 cout<<ans<<endl; 51 52 return 0; 53
以上是关于HDU-1423-Greatest Common Increasing Subsequence-最长公共上升子序列模版的主要内容,如果未能解决你的问题,请参考以下文章
Common-NO.122.common.1 - pvuvip,tpsqpsrps术语
Flutter 返回 `lifecycle-common-java8.jar (androidx.lifecycle:lifecycle-common-java8:2.0.0)` 错误