• hdu 1423 Greatest Common Increasing Subsequence 最长公共上升子序列


    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    int a[550],b[550],dp[550][550];
    int main()
    {
        int n,m,i,j,temp;
        int cas;
        scanf("%d",&cas);
        while(cas--)
        {
            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]);
            for(i=0;i<=m;i++) dp[0][i]=0;
            for(i=1;i<=n;i++)
            {
                temp=0;
                for(j=1;j<=m;j++)
                {
                    dp[i][j]=dp[i-1][j];
                    if(a[i]>b[j]&&dp[i-1][j]>temp) temp=dp[i-1][j];
                    if(a[i]==b[j]) dp[i][j]=temp+1;
                }
            }
            int ans=0;
            for(i=1;i<=m;i++)
                ans=max(ans,dp[n][i]);
            printf("%d
    ",ans);
            if(cas!=0) printf("
    ");
        }
        return 0;
    }
  • 相关阅读:
    代理模式
    适配器模式
    原型模式
    创建者模式
    装饰模式
    web总结
    4.14
    4.14
    POJ2385
    POJ2229
  • 原文地址:https://www.cnblogs.com/vermouth/p/4126981.html
Copyright © 2020-2023  润新知