题解:P13861 [SWERC 2020] Cakes

· · 题解

1.题目大意

给你制作一块蛋糕所需的 N 种原料,以及当前你拥有的这 N 种原料的数量,询问最多能做多少块蛋糕。

2.题目思路

首先,我们要想使蛋糕数最多,那么只要还能做一块蛋糕,就一定要做(废话)。

那么,我们先只考虑一种原料能做多少蛋糕。设一块蛋糕需要这种原料的数量为 x,当前拥有这种原料数量为 y,则只考虑这一种原料时,最多可做 \lfloor\dfrac{y}{x}\rfloor 个蛋糕。

由于一块蛋糕会用到所有的 N 种原料,那么最终能做出的蛋糕一定为所有答案的最小值,因为当最少的这种原料耗尽后,一定无法做出蛋糕。

注意,一开始将答案赋值为无穷大。

3.代码

注:代码仅供参考。

#include<bits/stdc++.h>
using namespace std;
int n,x,y,ans=2147483647; //注意初始答案赋值为无穷大
int main(){
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        scanf("%d %d",&x,&y);
        ans=min(ans,y/x); //只考虑这一种原料,则这种原料最多能做 (y/x) 个蛋糕,并与当前答案取最小值
    }
    printf("%d\n",ans); //输出答案
    return 0;
}

4.后记

更多内容,请移步至:

  1. \color{red}\texttt{Luogu ryf2011}
  2. \color{orange}\texttt{cnblogs(博客园) cnblogs2011ryf}