zoukankan      html  css  js  c++  java
  • HDU 1423 Greatest Common Increasing Subsequence ——动态规划

    好久以前的坑了。

    最长公共上升子序列。

    没什么好说的,自己太菜了

    #include <map>
    #include <cmath>
    #include <queue>
    #include <cstdio>
    #include <cstring>
    #include <iostream>
    #include <algorithm>
    using namespace std;
    #define F(i,j,k) for (int i=j;i<=k;++i)
    #define D(i,j,k) for (int i=j;i>=k;--i)
    #define ll long long
    #define maxn 505
    #define mp make_pair
    
    int t,n,m,a[maxn],b[maxn],f[maxn][maxn],ans;
    
    int main()
    {
        scanf("%d",&t);
        while (t--)
        {
            ans=0;
            scanf("%d",&n);F(i,1,n)scanf("%d",&a[i]);
            scanf("%d",&m);F(i,1,m)scanf("%d",&b[i]);
            memset(f,0,sizeof f);
            F(i,1,n)
            {
                int tmp=0;
                for (int j=1;j<=m;++j)
                {
                    f[i][j]=f[i-1][j];
                    if (b[j]<a[i]) tmp=max(f[i][j],tmp);
                    if (a[i]==b[j]) f[i][j]=max(f[i][j],tmp+1);
                }
            }
            F(i,1,m) ans=max(ans,f[n][i]);
            printf("%d
    ",ans);
            if (t) printf("
    ");
        }
    }
    

      

  • 相关阅读:
    c++:函数模板
    1084 外观数列
    1083 是否存在相等的差
    1082 射击比赛
    1081 检查密码
    1080 MOOC期终成绩
    1079 延迟的回文数
    1078 字符串压缩与解压
    1077 互评成绩计算
    1076 Wifi密码
  • 原文地址:https://www.cnblogs.com/SfailSth/p/6649653.html
Copyright © 2011-2022 走看看