POJ 3250 Bad Hair Day(单调栈)
2015-07-22 12:09
309 查看
用一个栈来维护当前的递减序列,从左到右遍历,对于每个数cur,从栈顶开始把所有小于等于cur的数字都出栈,然后剩下的就都是可以看到cur的牛,并且保证了栈中的单调性。每次遍历对弹栈后的长度求和即可。
代码:
代码:
#include <iostream> #include <cstdio> #include <cstring> #include <algorithm> #include <cstring> using namespace std; #define LL long long int N; int q[80005]; int top; int main(){ scanf("%d",&N); top=0; int cur; LL res=0; for(int i=0;i<N;i++){ scanf("%d",&cur); while(top&&q[top]<=cur){ top--; } res+=top; q[++top]=cur; } printf("%I64d\n",res); return 0; }
相关文章推荐
- hdu 5299 Circles Game 2015 Multi-University Training Contest 1 计算几何+博弈SG函数 圆的扫描线
- uva 11374 Airport Express (Dijkstra)
- hdu 5289 Assignment(2015 Multi-University Training Contest 1)
- hdoj 2473 Junk-Mail Filter 【并查集的删除 】
- Rails中的使用者验证:Devise
- Snail—OC学习之可变数组NSMutableArray
- Snail—OC学习之数组NSArray
- 2015 Multi-University Training Contest 1 Tricks Device
- Constraint.constant动画效果
- AIX 5L 系统管理技术 —— 存储管理——卷组
- hdu5293 Tree chain problem 树形dp+线段树
- HDU 1021 Fibonacci Again
- main函数的三个入参
- rails开发环境下使console不显示assets的日志信息
- 【CODEFORCES】 C. Captain Marmot
- 如何使用Jmail组件实现邮件的收发
- 03-树3. Tree Traversals Again (25)
- 【线段树】2015 Multi-University Training Contest 1 1002
- 【数论】2015 Multi-University Training Contest 1 1001
- hdu 5291 Candy Distribution 2015 Multi-University Training Contest 1