这是一个非常经典的单调栈。
上源代码
#include<iostream>
#include<stack>
#include<cstdio>
using namespace std;
int n,x,k;
stack<int> s;
int main()
{
s.push(0);
scanf("%d",&n);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
while(s.size()!=0&&x>=s.top())
{
s.pop();
}
k+=s.size();
s.push(x);
}
cout<<k<<endl;
}
174

被折叠的 条评论
为什么被折叠?



