单调栈

在cg中应用单调栈后仍有两个解超时,后发现用cin之类的比scanf之类的占用时间长
用cin与cout实际上比printf与scanf要慢,在大量的输入输出时就会造成时间的浪费!!!
故大量输入输出时应该为scanf和printf
cg链接http://cg.sau.edu.cn/acm/submit.jsp?problemID=3377&pageNo=1&pages=0
换掉后成功ac
如下为cg代码

#include<stdio.h>
#include<string.h>
#include<stack>
using namespace std;
long long a[1000005];
int shu[1000005];
int main()
{
    int n;
    scanf("%d",&n);
    for (int i = 0; i < n; i++)
    {
        scanf("%d", &a[i]);
    }
    stack<int> b;
    b.push(0);
    for (int i = 1; i < n; i++)
    {
        while (!b.empty() && a[b.top()] > a[i])
        {
            shu[b.top()] = i + 1;
            b.pop();
        }
        b.push(i);
    }
    for (int i = 0; i < n; i++)
    {
        printf("%d ", shu[i]);
    }
    return  0;
}


相似的题目还有这个https://www.luogu.com.cn/problem/P5788

posted @ 2022-03-27 12:25  Night_Voyager-qaq  阅读(67)  评论(0编辑  收藏  举报
Live2D