0
点赞
收藏
分享

微信扫一扫

【acwing】1010. 拦截导弹**

爱读书的歌者 2022-03-31 阅读 53

穿越隧道

dp + dp

#include <iostream>
#include <cstring>
#include <algorithm>
// #include <queue
using namespace std;
const int N = 1e3 + 10;
int f[N];
int g[N];
int a[N];
int n;
int main(){
    while(cin >> a[n])n++;
    int res = 0, ans = 0;
    for(int i = 0; i < n; i++){
        f[i] = 1;
        g[i] = 1;
        for(int j = 0; j < i; j++){
            if(a[i] <= a[j]){//不高于
                f[i] = max(f[i], f[j] + 1);
            }
        }
        res = max(res, f[i]);
        for(int j = 0;  j <i ; j++){
            if(a[i] > a[j]){
                g[i] = max(g[i],g[j] + 1);
            }
        }
        ans = max(ans,g[i]);
    }
    cout << res  << endl;
    cout << ans << endl;
    return 0;
}
举报

相关推荐

0 条评论