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

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

/*

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

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 */ n个牛排成一列向右看,牛i能看到牛j的头顶,当且仅当牛j在牛i的右边并且牛i与牛j之间的所有牛均比牛i矮。设牛i能看到的牛数为Ci,求∑Ci

       单调栈-----所谓单调栈也就是每次加入一个新元素时,把栈中小于等于这个值的元素弹出。

  求所有牛总共能看到多少牛,可以转化为:这n头牛共能被多少头牛看见。       

   当我们新加入一个高度值时,如果栈中存在元素小于新加入的高度值,那么这些小的牛肯定看不见这个高度的牛(那就看不见这头牛后边的所有牛),所以就可以把这些元素弹出。每次加入新元素,并执行完弹出操作后,栈中元素个数便是可以看见这个牛的“牛数”。

       这道题要注意答案可能会超longint,要用int64。

#include 
#include
#include
#include
using namespace std;int main(){ int n; while(cin >> n) { stack
s; int be_cow; cin >> be_cow; s.push(be_cow); long long ans = 0; for(int i = 1; i < n; i++) { int cow; cin >> cow; while(!s.empty() && cow >= s.top()) s.pop(); ans += s.size(); s.push(cow); } cout << ans << endl; } return 0;}

 

转载于:https://www.cnblogs.com/jxust-jiege666/p/6496857.html

你可能感兴趣的文章
js 数组,字符串,json互相转换(在select实现多个输入的时候与后台交互常使用)...
查看>>
js index of()用法
查看>>
XSS原理及防范
查看>>
WPF中Image显示本地图片
查看>>
SVN版本管理
查看>>
哈希表等概率情况下查找成功和查找不成功的平均查找长度的计算
查看>>
SQL 操作结果集 -并集、差集、交集、结果集排序
查看>>
ENVI\IDL 重采样 栅格单元大小设置
查看>>
flume监控
查看>>
无法重启ssh
查看>>
Bugly热更新——初探
查看>>
ios12--简易购物车
查看>>
go17---并发
查看>>
守护线程
查看>>
VC++中使用MFC通过ADO连接数据库
查看>>
JavaScript验证注册信息
查看>>
cogs 22. [HAOI2005] 路由选择问题
查看>>
Oracle联合主键
查看>>
模仿qq截取圆形头像
查看>>
控制寄存器 CR*
查看>>