• PAT (Advanced Level) 1045. Favorite Color Stripe (30)


    最长公共子序列变形。

    #include<iostream>
    #include<cstring>
    #include<cmath>
    #include<algorithm>
    #include<cstdio>
    #include<map>
    #include<queue>
    #include<string>
    #include<vector>
    using namespace std;
    
    int n,M,L;
    int a[300],b[10030];
    int dp[300][10030];
    
    int MAX(int a,int b,int c)
    {
        return max(a,max(b,c));
    }
    
    int main()
    {
        scanf("%d",&n);
        scanf("%d",&M); for(int i=1;i<=M;i++) scanf("%d",&a[i]);
        scanf("%d",&L); for(int i=1;i<=L;i++) scanf("%d",&b[i]);
        memset(dp,0,sizeof dp);
        for(int i=1;i<=M;i++)
        {
            for(int j=1;j<=L;j++)
            {
                if(a[i]==b[j]) dp[i][j]=MAX(dp[i-1][j-1],dp[i-1][j],dp[i][j-1])+1;
                else dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
            }
        }
        printf("%d
    ",dp[M][L]);
        return 0;
    }
  • 相关阅读:
    c++ struct 使用
    c++数组、字符串操作
    c++ List、Vector、Stack、Queue使用
    十三、哈希表
    十二、234树
    十一、红黑树
    十、哈夫曼编码
    九、二叉树
    八、高级排序
    七、递归
  • 原文地址:https://www.cnblogs.com/zufezzt/p/5526926.html
Copyright © 2020-2023  润新知