zoukankan      html  css  js  c++  java
  • 动规专题

    最长上升子序列:

    #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;
    }
  • 相关阅读:
    springboot的整合篇-springmvc,mybatis,数据库等
    快速搭建springboot工程
    Git常用命令
    SpringBoot整合通用Mapper
    SpringBoot项目部署
    实例化调用和静态方式调用的区别
    CentOS系统安装PHP7.3
    CentOS7部署LNMP环境
    Apache和Nginx的区别
    Linux系统下卸载MySQL
  • 原文地址:https://www.cnblogs.com/dreamzj/p/14667690.html
Copyright © 2011-2022 走看看