[BZOJ1660][Usaco2006 Nov]Bad Hair Day 乱发节(单调栈)
2016-05-03 08:01
447 查看
题目描述
传送门题解
单调栈裸题,自底向上单调递减。代码
#include<iostream> #include<cstring> #include<cstdio> using namespace std; #define LL long long const int max_n=8e4+5; int n,x,temp,a[max_n],strack[max_n]; LL ans; struct hp{int r;}f[max_n]; int main(){ scanf("%d",&n); for (int i=1;i<=n;++i) scanf("%d",&a[i]); for (int i=1;i<=n;++i) f[i].r=i; for (int i=1;i<=n;++i){ x=a[i]; while (temp&&a[strack[temp]]<=x){ f[strack[temp-1]].r=f[strack[temp]].r; temp--; } f[strack[temp]].r=f[i].r; strack[++temp]=i; } while (temp){ f[strack[temp-1]].r=f[strack[temp]].r; temp--; } for (int i=1;i<=n;++i) ans+=(LL)f[i].r-i; printf("%lld\n",ans); }
相关文章推荐
- LeetCode 011 Container With Most Water *
- main函数参数的使用和指针数组的理解结合实例
- 直接插入排序(Straight Insertion Sort)
- 直接选择排序(Straight Selection Sort)
- 百度地图 baiduMap(一) 基本显示
- Poj 3250 Bad Hair Day 【单调栈】
- google base库中的WaitableEvent
- 只有return的main函数,readelf结果
- 第2步:捉迷藏,kafka的main入口在哪里?
- HDU_5046_Airport(DancingLinksX重复覆盖+二分)
- Kafka设计解析(三)- Kafka High Availability (下)
- BNU 51638 Air Hockey 三分二分法
- OpenCV Error: Assertion failed (size.width>0 && size.height>0) in cv::imshow
- 217.[Leetcode]Contains Duplicate
- Kafka设计解析(二)- Kafka High Availability (上)
- POJ11422 Air Raid
- “hackers and painters”读书笔记
- EasyChair提交会议论文的方法简介
- hduoj Train Problem I-1022
- POJ 1273 Drainage Ditches