杭电1423(Greatest Common Increasing Subsequence)

点击打开杭电1423

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
 
   
1 5 1 4 2 5 -12 4 -12 1 2 4
 

Sample Output
 
   
2


题意:求最长公共递增子序列的长度,直接要用模板即可( 最长递增公共子序列)


代码实现:

import java.util.Scanner;


class P1423 {
	static int[] a,b,dp;
	static int n,m;
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int t=sc.nextInt();
		while(t-->0){
			n=sc.nextInt();
			a=new int[n+1];
			for(int i=1;i<=n;i++){
				a[i]=sc.nextInt();
			}
			m=sc.nextInt();
			b=new int[m+1];
			for(int i=1;i<=m;i++){
				b[i]=sc.nextInt();
			}
			System.out.println(LICS());
			if(t!=0){
				System.out.println();
			}
		}
	}
	public static int LICS() {
		int i,j,Max;
		int lengMax=Math.max(n, m);
		dp=new int[lengMax+1];
		for(i=1;i<=n;i++){
			Max=0;
			for(j=1;j<=m;j++){
				if(a[i]>b[j] && Max



你可能感兴趣的:(LCS,LIS,LICS,dp,杭电oj)