1 条题解

  • 0
    @ 2024-4-10 18:31:01

    单调队列板子

    #include <bits/stdc++.h>
    using namespace std;
    const int N = 1000010;
    int a[N];
    int n;
    deque<int> q;
    int main(){
        scanf("%d",&n);
        for (int i = 1; i <= n; ++i) {
            scanf("%d",&a[i]);
        }
        for (int i = 1; i <= n; ++i) {
            while(!q.empty() && a[q.back()] <= a[i]) q.pop_back();
            q.push_back(i);
        }
        for (int i = 0; i <= q.size() - 1; ++i) {
            printf("%d ",a[q[i]]);
        }
        return 0;
    }
    
    • 1

    信息

    ID
    103
    时间
    1000ms
    内存
    256MiB
    难度
    6
    标签
    递交数
    57
    已通过
    18
    上传者