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; }
朋友们,虽然这个世界日益浮躁起来,只要能够为了当时纯粹的梦想和感动坚持努力下去,不管其它人怎么样,我们也能够保持自己的本色走下去。