poj3250Bad Hair Day【单调栈】
来源:互联网 发布:tensorflow 下载 编辑:程序博客网 时间:2024/06/05 00:13
Description
Some of Farmer John's N cows (1 ≤ N ≤ 80,000) are having a bad hair day! Since each cow is self-conscious about her messy hairstyle, FJ wants to count the number of other cows that can see the top of other cows' heads.
Each cow i has a specified height hi (1 ≤ hi ≤ 1,000,000,000) and is standing in a line of cows all facing east (to the right in our diagrams). Therefore, cow i can see the tops of the heads of cows in front of her (namely cows i+1, i+2, and so on), for as long as these cows are strictly shorter than cow i.
Consider this example:
== == - = Cows facing right -->= = == - = = == = = = = =1 2 3 4 5 6
Cow#1 can see the hairstyle of cows #2, 3, 4
Cow#2 can see no cow's hairstyle
Cow#3 can see the hairstyle of cow #4
Cow#4 can see no cow's hairstyle
Cow#5 can see the hairstyle of cow 6
Cow#6 can see no cows at all!
Let ci denote the number of cows whose hairstyle is visible from cow i; please compute the sum of c1 through cN.For this example, the desired is answer 3 + 0 + 1 + 0 + 1 + 0 = 5.
Input
Lines 2..N+1: Line i+1 contains a single integer that is the height of cow i.
Output
Sample Input
610374122
Sample Output
5
题意:一群牛有高有低站成一队每个牛可以看到它右边比他个低的牛如果有一个牛比它高则此后的牛都看不到;求每个牛能看到的牛的数量和
思路:把每个牛能看到牛的个数转化为能看到当前牛的个数。用单调栈;
#include<cstdio>#include<cstdlib>#include<cstring>#include<algorithm>#include<cmath>#include<queue>#include<list>#include<vector>using namespace std;const int maxn=80010;long long stack[maxn]; int main(){int n,i,j,k;while(scanf("%d",&n)!=EOF){int top=0;long long ans=0,num; for(i=1;i<=n;++i){scanf("%d",&num);while(top>0&&stack[top-1]<=num)top--;ans+=top;stack[top++]=num;}printf("%lld\n",ans);}return 0;}
- poj3250Bad Hair Day【单调栈】
- poj3250Bad Hair Day(单调栈)
- (单调栈)Bad Hair Day
- poj 3250:Bad Hair Day---单调栈
- poj3250 Bad Hair Day(单调栈)
- POJ 3250 Bad Hair Day(单调栈)
- poj3250-Bad Hair Day(单调栈)
- POJ 3250 Bad Hair Day(单调栈)
- POJ 3250 Bad Hair Day 单调栈
- poj3250 Bad Hair Day 单调栈
- POJ3250 Bad Hair Day 单调栈
- POJ3250---Bad Hair Day(单调栈)
- poj 3250 Bad Hair Day 单调栈
- POJ3250 Bad Hair Day 单调栈
- [单调栈] poj 3250 Bad Hair Day
- POJ 3250 Bad Hair Day 【单调栈】
- poj 3250 Bad Hair Day 【单调栈】
- poj 3250 Bad Hair Day(单调栈)
- Core Animation实例2-活动指示器(CAReplicatorLayer复制层)
- Mybatis简介与原理详细描述
- dubbo学习
- 网络请求 cookie的添加
- Error:Execution failed for task ':app:mergeDebugResources'. > [style/AppTheme] E:\AndroidSpace\BaseP
- poj3250Bad Hair Day【单调栈】
- iOS 长见宏定义
- Android中滑屏实现----手把手教你如何实现触摸滑屏以及Scroller类详解
- uva 227 Puzzle
- C++学习之多态篇(纯虚函数和虚函数的区别)
- onDetach ,onAttach,onPostExecute,RetianFragment方法周期,解释的不错
- 基于ARM-contexA9蜂鸣器驱动开发
- PrefixHeader.pch 文件和info.plist文件路径问题
- ViewPager的setOnPageChangeListener方法详解