题面:

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. leetcode8 字符串转换整数

    <cctype> isdigit(char) 问题:在做乘法,加法前,先判断是否溢出 &&优先级大于== 然后教训: 考虑情况不周.比如3.14这样 然后解决办法 多自己搞 ...

  2. Node.js 实战 & 最佳 Express 项目架构

    Node.js 实战 & 最佳 Express 项目架构 Express Koa refs https://github.com/xgqfrms/learn-node.js-by-practi ...

  3. Jamstack Conf 2020

    Jamstack Conf 2020 Jamstack Conf Virtual https://jamstackconf.com/virtual/ Conf Schedule https://jam ...

  4. Python Tutorials

    Python Tutorials Real Python https://realpython.com/ https://realpython.com/courses/ https://realpyt ...

  5. node.js 如何处理一个很大的文件

    node.js 如何处理一个很大的文件 思路 arraybuffer 数据分段 时间分片 多线程 web workers sevice workers node.js 如何处理一个很大的文件 http ...

  6. yarn create & npx & npm init

    yarn create & npx & npm init https://www.npmtrends.com/npm-vs-npx-vs-yarn demo https://www.n ...

  7. 「NGK每日快讯」2021.1.4日NGK第62期官方快讯!

  8. 1095 Cars on Campus——PAT甲级真题

    1095 Cars on Campus Zhejiang University has 6 campuses and a lot of gates. From each gate we can col ...

  9. kubernetes和docker----2.学习Pod资源

    Pod--k8s最基础的资源 我们想要的是单个容器只运行一个进程 然而有时我们需要多个进程协同工作,所以我们需要另外一种更加高级的结构将容器组合在一起---pod Pod 我们来看一个最基本的pod ...

  10. Debain 系统U盘安装完全图解

    习惯了使用图形界面的操作,总有一股想要切换到文字界面的Linux的冲动,刚好趁家里的老台式机,没什么用了,就打算用来玩下Linux,在一路安装与使用的过程中,碰到了许多的问题.顺便记录下来,以希望可以 ...