• 动规专题


    最长上升子序列:

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3fffffff
    const int maxn=1010;
    int A[maxn];
    int dp[maxn];
    //最长上升子序列
    int main(){
        int n;
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>A[i];
        }
        dp[0]=A[0];
        for(int i=1;i<n;i++){
            dp[i]=max(A[i],dp[i-1]+A[i]);
        }
        int k=0;
        for(int i=1;i<n;i++){
            if(dp[i]>dp[k]){
                k=i;
            }
        }
        cout<<dp[k]<<endl;
        return 0;
    }
    //6
    //-2 11 -4 13 -5 -2
    //20

    最长不下降子序列:

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3fffffff
    const int maxn=1010;
    int A[maxn];
    int dp[maxn];
    //最长不下降子序列
    int main(){
        int n;
        cin>>n;
        for(int i=0;i<n;i++){
            cin>>A[i];
            dp[i]=1;
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<i;j++){
                if(A[j]<=A[i]&&dp[j]+1>dp[i]){
                    dp[i]=dp[j]+1;
                }
            }
        }
        int maxL=-1;
        for(int i=0;i<n;i++){
            if(dp[i]>maxL){
                maxL=dp[i];
            }
        }
        cout<<maxL<<endl;
        return 0;
    }
    //8
    //1 2 3 -9 3 9 0 11
    //6

    最长公共子序列:

    #include<bits/stdc++.h>
    using namespace std;
    #define inf 0x3fffffff
    const int maxn=1010;
    int dp[maxn][maxn];
    //最长公共子序列
    int main(){
        string s1;
        string s2;
        cin>>s1>>s2;
        int len1=s1.size();
        int len2=s2.size();
        for(int i=0;i<=len1;i++){
            dp[i][0]=0;
        }
        for(int i=0;i<=len2;i++){
            dp[0][i]=0;
        }
        for(int i=1;i<=len1;i++){
            for(int j=1;j<=len2;j++){
                if(s1[i]==s2[j]){
                    dp[i][j]=dp[i-1][j-1]+1;
                }
                else{
                    dp[i][j]=max(dp[i-1][j],dp[i][j-1]);
                }
            }
        }
        cout<<dp[len1][len2]<<endl;
        return 0;
    }
  • 相关阅读:
    json to dictionary
    ie下 频繁异步加载导致崩溃
    如何实现数据在表内部置顶
    js货币转换,replaceAll写法
    js奇怪的问题
    mssql中public和db_owner权限下拿到webshell或者系统权限
    关于Alexa Toolbar的破解方法
    如何备份和还原 IIS
    WIN下IIS备份与恢复操作
    汽车品牌标志数据库
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14667690.html
Copyright © 2020-2023  润新知