zoukankan      html  css  js  c++  java
  • Task

    #include <bits/stdc++.h>
    using namespace std;
    #define int long long
    const int maxn = 3e3 + 10;
    int n,a[maxn];
    
    int solve(int l,int r){
        int minn = 1e9 + 10;
        for(int i = l; i <= r; i++)
            minn = min(minn,a[i]);
        int ans = minn;
        int pre = l;
        for(int i = l; i <= r; i++){
            a[i] -= minn;
            if(!a[i]){
                ans += solve(pre,i - 1);
                pre = i + 1;
            }
        }
        if(pre != r + 1) ans += solve(pre,r);
        return min(ans,r - l + 1);
    }
    signed main(){
       // freopen("in","r",stdin);
        ios::sync_with_stdio(0);
        cin >> n;
        for(int i = 1; i <= n; i++)
            cin >> a[i];
        cout << solve(1,n);
        return 0;
    }
    View Code
  • 相关阅读:
    java
    java
    java
    java
    java
    java
    java
    java
    sed命令的用法
    linux系统产生随机数的6种方法
  • 原文地址:https://www.cnblogs.com/xcfxcf/p/12819274.html
Copyright © 2011-2022 走看看