博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
poj3250 Bad Hair Day
阅读量:6171 次
发布时间:2019-06-21

本文共 2011 字,大约阅读时间需要 6 分钟。

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 ≤ h≤ 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

Line 1: The number of cows, 
N
Lines 2..N+1: Line 
i+1 contains a single integer that is the height of cow 
i.

Output

Line 1: A single integer that is the sum of 
c
1 through 
cN.

Sample Input

610374122

Sample Output

5

一些牛从左到右排列。全部的牛都从左往右看,左边的牛仅仅能看到右边的比它身高严格小的牛的发型。假设被一个大于等于它身高的牛挡住。那么它就不能看到再右边的牛。要求每头牛能够看到其它牛的总数。转化一下,事实上就是求每头牛被看到的总次数。能够用单调栈,每次删除栈中比当前牛的身高小于等于的数。事实上这题也能够看做是单调队列。但由于不用对对首操作。所以可看做退化为了栈。

#include
#include
#include
#include
#include
using namespace std;#define maxn 80600int a[maxn],stack[maxn];int main(){ int n,m,i,j,top; __int64 sum; while(scanf("%d",&n)!=EOF){ memset(stack,0,sizeof(stack)); top=0;sum=0; for(i=1;i<=n;i++){ scanf("%d",&a[i]); while(top>0 && a[i]>=stack[top])top--; sum+=top; stack[++top]=a[i]; } printf("%I64d\n",sum); } return 0;}
本文转自mfrbuaa博客园博客,原文链接:http://www.cnblogs.com/mfrbuaa/p/5374561.html,如需转载请自行联系原作者 
你可能感兴趣的文章
Deprecated: Assigning the return value of new by reference is deprecated in……【解决方法】
查看>>
Deprecated: Function eregi() is deprecated in ……【解决方法】
查看>>
JS实现动画方向切换效果(包括:撞墙反弹,暂停继续左右运动等)
查看>>
定时任务发展史(二)
查看>>
hdu 5172 GTY's gay friends 线段树
查看>>
C二维数组练习
查看>>
实验十——一维数组的定义及引用
查看>>
【转载】Spring3 MVC的DEMO
查看>>
jquery取对象数组元素的错误方式
查看>>
秒杀的活动设计方案
查看>>
【python3的进阶之路二】因特网客户端编程
查看>>
Python Day43
查看>>
PHP 构造函数
查看>>
26、百度地图 & 高德地图
查看>>
史上最全的Maven Pom文件标签详解(转)
查看>>
mysql普通用户本机无法登录的解决办法
查看>>
密码学加解密实训(墨者学院摩斯密码第2题)
查看>>
The Cats' Feeding Spots
查看>>
uva 10169 Urn-ball Probabilities!
查看>>
MySQL索引背后的数据结构及算法原理
查看>>