题面:

D. Lemonade Line

Input file: standard input
Output file: standard output
Time limit: 1 second
Memory limit: 256 megabytes
 
It’s a hot summer day out on the farm, and Farmer John is serving lemonade to his N cows! All N cows (conveniently numbered 1...N) like lemonade, but some of them like it more than others. In particular, cow i is willing to wait in a line behind at most wi cows to get her lemonade. Right now all N cows are in the fields, but as soon as Farmer John rings his cowbell, the cows will immediately descend upon FJ’s lemonade stand. They will all arrive before he starts serving lemonade, but no two cows will arrive at the same time. Furthermore, when cow i arrives, she will join the line if and only if there are at most wi cows already in line.

Farmer John wants to prepare some amount of lemonade in advance, but he does not want to be wasteful. The number of cows who join the line might depend on the order in which they arrive. Help him find the minimum possible number of cows who join the line.

 
Input
The first line contains N, and the second line contains the N space-separated integers w1,w2,...,wN. It is guaranteed that 1 ≤ N ≤ 10^5, and that 0 ≤ wi ≤ 10^9 for each cow i.
 
Output
Print the minimum possible number of cows who might join the line, among all possible orders in which the cows might arrive. 
 
Example
Input
5
7 1 400 2 2 
Output
3
 
Note
In this setting, only three cows might end up in line (and this is the smallest possible).
Suppose the cows with w = 7 and w = 400 arrive first and wait in line.
Then the cow with w = 1 arrives and turns away, since 2 cows are already in line. The cows with w = 2 then arrive, one staying and one turning away.
 

题目描述:

农夫给N头奶牛提供柠檬汁。奶牛们都很喜欢柠檬汁,但是每头奶牛对柠檬汁的“热爱”程度不一样,导致了它们能“忍耐”排队的程度不一样:对于奶牛i来说,最多能“忍耐”Wi头奶牛在前面,如果超过Wi头奶牛,那么奶牛i就不排队取柠檬汁喝了。农夫不想浪费柠檬汁,问:最少需要为多少头牛准备柠檬汁?
 

题目分析:

这道题要注意的是:两头奶牛不会同时到达柠檬汁摊,而且每头奶牛来的时间没有固定(要不然题目怎么 要求 找最小值( ̄▽ ̄)")。
 
按照题目的意思,其实我们要做的事就是:让尽可能少的奶牛加入队里面。这里用简单的贪心就可以解决:
令“忍耐”度低的奶牛排在后面,离开的可能性更高。或者是:令“忍耐”度高的奶牛排在前面:
然后,我们可以模拟一下这个过程:
当奶牛1先到达时,因为前面没有奶牛,所以奶牛1加入队列:
当奶牛3到达时,前面只有1头奶牛,没有超过4,所以奶牛3加入队列:
当奶牛4到达时,前面有2头奶牛,没有超过3,所以奶牛4加入队列:
当奶牛2到达时,前面有3头奶牛,超过“忍耐”奶牛数1,所以奶牛2离开:
所以,最终只有3头奶牛留下来,最小值为3。
我们写代码时模拟这个过程就可以了。
 
 
AC代码:
 1 #include <cstdio>
2 #include <cstring>
3 #include <iostream>
4 using namespace std;
5 const int maxn = 1e5+5;
6 int w[maxn];
7 int cnt;
8
9 bool cmp(int a, int b){
10 return a > b;
11 }
12
13 int main(){
14 int n;
15 scanf("%d", &n);
16 for(int i = 0; i < n; i++){
17 scanf("%d", &w[i]);
18 }
19
20 sort(w, w+n, cmp); //排序
21
22 cnt = 0;
23 for(int i = 0; i < n; i++){
24 if(cnt <= w[i]){ //能排就排队
25 cnt++;
26 }
27 }
28
29 cout << top << endl;
30 return 0;
31 }
 
 

2019 GDUT Rating Contest III : Problem D. Lemonade Line的更多相关文章

  1. 2019 GDUT Rating Contest III : Problem E. Family Tree

    题面: E. Family Tree Input file: standard input Output file: standard output Time limit: 1 second Memory ...

  2. 2019 GDUT Rating Contest III : Problem C. Team Tic Tac Toe

    题面: C. Team Tic Tac Toe Input file: standard input Output file: standard output Time limit: 1 second M ...

  3. 2019 GDUT Rating Contest III : Problem A. Out of Sorts

    题面: 传送门 A. Out of Sorts Input file: standard input Output file: standard output Time limit: 1 second M ...

  4. 2019 GDUT Rating Contest II : Problem F. Teleportation

    题面: Problem F. Teleportation Input file: standard input Output file: standard output Time limit: 15 se ...

  5. 2019 GDUT Rating Contest I : Problem H. Mixing Milk

    题面: H. Mixing Milk Input file: standard input Output file: standard output Time limit: 1 second Memory ...

  6. 2019 GDUT Rating Contest I : Problem A. The Bucket List

    题面: A. The Bucket List Input file: standard input Output file: standard output Time limit: 1 second Me ...

  7. 2019 GDUT Rating Contest I : Problem G. Back and Forth

    题面: G. Back and Forth Input file: standard input Output file: standard output Time limit: 1 second Mem ...

  8. 2019 GDUT Rating Contest II : Problem G. Snow Boots

    题面: G. Snow Boots Input file: standard input Output file: standard output Time limit: 1 second Memory ...

  9. 2019 GDUT Rating Contest II : Problem C. Rest Stops

    题面: C. Rest Stops Input file: standard input Output file: standard output Time limit: 1 second Memory ...

随机推荐

  1. pycharm 与 anaconda 关联

    anaconda Anaconda指的是一个开源的Python发行版本,集成了许多数据分析的库. 使用tersorflow进行机器学习时常用Anaconda pycharm PyCharm是一种Pyt ...

  2. int、long long等的取值范围

    unsigned   int   0-4294967295   int   -2147483648-2147483647 unsigned long 0-4294967295long   -21474 ...

  3. C# 类 (10) - 命名空间NameSpace

    NameSpace 命名空间是一系列 类型的集合,比如很多方法,很多类,集合在一个空间(myspace)里,谁想用就先 using myspace,然后直接用不using myspace的话,想用里面 ...

  4. ARMv7-A 架构下的MMU

    ARM架构中MMU的作用主要就是将CPU发出的虚拟地址转换成为物理地址,从实现内核和用户程序和用户程序之间的虚拟地址空间隔离.MMU的主要组成为两部分,其一是内部的TLBs缓存:还有就是转换表装换单元 ...

  5. 如何在 Apple Watch S6上离线播放音乐

    如何在 Apple Watch S6上离线播放音乐 Apple Watch 离线播放音乐 营销策略,捆绑销售 Apple Watch + AirPods + Apple Music Apple Wat ...

  6. web components & publish custom element & npm

    web components & publish custom element & npm https://www.webcomponents.org/publish Polymer ...

  7. c++ string split function

    #include <string> #include <vector> #include <regex> struct SplitListItem { std::s ...

  8. Scrapy项目_阳光热线问政平台

    目的: 爬取阳光热线问政平台问题中每个帖子的标题.详情URL.详情内容.图片以及发布时间 步骤: 1.创建爬虫项目 1 scrapy startproject yangguang 2 cd yangg ...

  9. Java开发工程师最新面试题库系列——Spring部分(附答案)

    Spring Spring框架是什么? 答:Spring是轻量级的面向切面和控制反转的框架.初代版本为2002年发布的interface21,Spring框架是为了解决企业级应用开发的复杂性的出现的, ...

  10. 都学Python了,C++难道真的用不着了吗?

    本文首发 | 公众号:lunvey 人人都在学Python,我还学C++吗? 现在只要提及编程语言,得到的答复都是:学Python,有未来!   大家可能有一个误区,数据分析带火了Python,让人们 ...