Mr.Zheng① 2021-07-28 10:29 采纳率: 0%
浏览 28

关于#c++#的问题,请各位专家!

代码如下:


#include <iostream>
#include <cstring>
#define N 100000
using namespace std;

int dp[N];
int num[N];

int Max(int a,int n){
    int m = 0;
    for(int i = a; i < n; i++){
        if(num[i] < num[i+1]){
            if(m < dp[i+1]){
                m = dp[i+1];
            }
        }
    }
    return m;
}

int DP(int n){
    int M = 0;
    dp[n] = 1;
    for(int i = n - 1; i >= 1; i--){
        dp[i] = Max(i,n) + 1;
        if(M < dp[i])M = dp[i];
    }
    return M;
}

int main(){
    int n;
    while(cin >> n){
        memset(dp,0,sizeof(dp));
        memset(num,0,sizeof(num));
        for(int i = 1; i <= n; i++){
            cin >> num[i];
        }
        cout << DP(n) << endl;
    }
    return 0;
}
  • 写回答

3条回答 默认 最新

  • 滑一下很开心 2021-07-28 10:36
    关注

    啥问题

    评论

报告相同问题?

问题事件

  • 请详细说明问题背景 7月28日
  • 创建了问题 7月28日