poj 3250 Bad Hair Day单调栈

来源:互联网 发布:rx100 m3 m4 m5知乎 编辑:程序博客网 时间:2024/06/10 19:24

在使用单调栈的过程中,栈中保留的奶牛 都是比当前 值 大的奶牛,这时记录此时栈中的奶牛数量,就是在当前奶牛的前面所有奶牛当中可以看到当前奶牛的奶牛数量。。。。好绕口。。。。。

#include<cstdio>#include<cstring>using namespace std;long long int stack[88888];long long d[88888];int main(){int n;memset(stack,0,sizeof(stack));scanf("%d",&n);for(int i=0;i<n;i++)scanf("%lld",&d[i]);int tot=0;long long res=0;for(int i=0;i<n;i++){while(tot>0&&stack[tot-1]<=d[i])tot--;res+=tot;stack[tot++]=d[i];}printf("%lld\n",res);} 


0 0