poj3250单调栈
有n只羊,(姑且算是羊吧,也有可能是牛啊猫啊什么之类的),每只羊都有一个身高,前面的羊要看到后面的羊的条件是,后面的羊高度要小于前面的羊,就问各位羊加起来看到的牛多少只.......
#include<iostream>
#include<stack>
#include<stdio.h>
using namespace std;
int main()
{
int n;
while(scanf("%d",&n)>0)
{
stack<__int64>Q;
__int64 num,sum=0;
scanf("%I64d",&num);
Q.push(num);
for(int i=1;i<n;i++)
{
scanf("%I64d",&num);
while(!Q.empty()&&Q.top()<=num)
Q.pop();
sum+=Q.size();
Q.push(num);
}
printf("%I64d\n",sum);
}
return 0;
}
朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。

浙公网安备 33010602011771号