机试练习02:poj3250——Bad Hair Day

Posted Alyssa_young

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机试练习02:poj3250——Bad Hair Day相关的知识,希望对你有一定的参考价值。

参考来源:https://blog.csdn.net/htt_h/article/details/39716905

一、题解方法

维护一个单调递减队列,如果输入元素大于队尾元素,则清空队列。因此,队尾减队头就是所有矮于当前身高的奶牛数。

二、题解代码

 1 #include <iostream>  
 2   
 3 using namespace std;  
 4   
 5   
 6 int que[80000];  
 7 int head = 0, rear = -1;  
 8   
 9 int main()  
10 {  
11     int n, input;  
12     long long ans = 0;  
13     cin >> n;  
14     while(n--){  
15         cin >> input;  
16         while(rear >= head && input >= que[rear]) rear--; //清除矮的  
17         que[++rear] = input; //插入  
18         ans += rear - head;  //统计  
19     }  
20   
21     cout << ans << endl;  
22     return 0;  
23 }  

 

以上是关于机试练习02:poj3250——Bad Hair Day的主要内容,如果未能解决你的问题,请参考以下文章

poj 3250 Bad Hair Day

POJ 3250 Bad Hair Day

POJ - 3250 Bad Hair Day (单调栈)

POJ 3250 Bad Hair Day 单调栈

poj 3250 Bad Hair Day 单调栈入门

POJ3250[USACO2006Nov]Bad Hair Day[单调栈]