zoukankan      html  css  js  c++  java
  • Codeforces 442C Artem and Array (看题解)

    Artem and Array

    经过分析我们能发现, 如果对于一个a[ i ] <= a[ i + 1 ] && a[ i ] <= a[ i - 1 ]可以直接删掉。

    最后剩下一个先增后减的序列, 除了最大的两个都能加上。

    #include<bits/stdc++.h>
    #define LL long long
    #define fi first
    #define se second
    #define mk make_pair
    #define PLL pair<LL, LL>
    #define PLI pair<LL, int>
    #define PII pair<int, int>
    #define SZ(x) ((int)x.size())
    #define ull unsigned long long
    
    using namespace std;
    
    const int N = 5e5 + 7;
    const int inf = 0x3f3f3f3f;
    const LL INF = 0x3f3f3f3f3f3f3f3f;
    const int mod = 1e9 + 7;
    const double eps = 1e-8;
    const double PI = acos(-1);
    
    int n, a[N], que[N], top;
    LL ans;
    int main() {
        scanf("%d", &n);
        for(int i = 1; i <= n; i++) scanf("%d", &a[i]);
        que[++top] = a[1];
        for(int i = 2; i <= n; i++) {
            while(top > 1 && que[top] <= que[top - 1] && que[top] <= a[i]) {
                ans += min(que[top - 1], a[i]);
                top--;
            }
            que[++top] = a[i];
        }
        sort(que + 1, que + 1 + top);
        for(int i = 1; i <= top - 2; i++) ans += que[i];
        printf("%lld
    ", ans);
        return 0;
    }
    
    /*
    */
  • 相关阅读:
    MYSQL常用命令集合(转载)
    Spring(七)持久层
    Spring(六)AOP切入方式
    面试题目
    11 集合
    10 常用类
    9 异常机制
    8 面向对象之抽象类+接口+内部类
    7 面向对象的三大特征
    6 面向对象之类和对象
  • 原文地址:https://www.cnblogs.com/CJLHY/p/10452521.html
Copyright © 2011-2022 走看看