其他分享
首页 > 其他分享> > 单调栈

单调栈

作者:互联网

在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

标签:shu,int,scanf,cg,printf,include,单调
来源: https://www.cnblogs.com/NightVoyager233/p/16062453.html