• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
Niro Einteson
文可提笔安天下 武可上马定乾坤
博客园    首页    新随笔    联系   管理    订阅  订阅

P1909 买铅笔

P1909 买铅笔


题目描述
P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物。她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同。为了公平起 见,P老师决定只买同一种包装的铅笔。

商店不允许将铅笔的包装拆开,因此P老师可能需要购买超过nn支铅笔才够给小朋 友们发礼物。

现在P老师想知道,在商店每种包装的数量都足够的情况下,要买够至少nn支铅笔最少需要花费多少钱。

输入格式
第一行包含一个正整数nn,表示需要的铅笔数量。

接下来三行,每行用22个正整数描述一种包装的铅笔:其中第11个整数表示这种 包装内铅笔的数量,第22个整数表示这种包装的价格。

保证所有的77个数都是不超过1000010000的正整数。

输出格式
11个整数,表示P老师最少需要花费的钱。

输入输出样例
输入
57
2 2
50 30
30 27
输出
54
输入
9998
128 233
128 2333
128 666
输出
18407
输入
9999
101 1111
1 9999
1111 9999
输出
89991
说明/提示
铅笔的三种包装分别是:

22支装,价格为22;
5050支装,价格为3030;
3030支装,价格为2727。
P老师需要购买至少5757支铅笔。

如果她选择购买第一种包装,那么她需要购买2929份,共计2 \times 29 = 582×29=58支,需要花费的钱为2 \times 29 = 582×29=58。

实际上,P老师会选择购买第三种包装,这样需要买22份。虽然最后买到的铅笔数 量更多了,为30 \times 2 = 6030×2=60支,但花费却减少为27 \times 2 = 5427×2=54,比第一种少。

对于第二种包装,虽然每支铅笔的价格是最低的,但要够发必须买22份,实际的花费达到了 30 \times 2 = 6030×2=60,因此P老师也不会选择。

所以最后输出的答案是5454。

 1 解法:
 2 #include<bits/stdc++.h>
 3 using namespace std;
 4 int main()
 5 {
 6     /*思路:
 7         1:输入要买的铅笔数量n
 8         2:输入每种铅笔的数量m和价格price
 9         3:若n%m=0,说明m是n的约数,Min=min(Min,n/m*price);
10         4:若n%m!=0
11         5:则判断n/m==0,n小于m, Min=min(Min,price);
12         6:若n/m!=0,那么Min=min(Min,(n/m+1)*price);
13     */
14     int n;//要买的铅笔笔数目
15     int data,price;//包装的铅笔数量和价格
16     int Min=INT_MAX;//最小价格
17     cin>>n;
18     for(int i=0;i<3;i++){
19         cin>>data>>price;
20         if(n%data==0){
21             Min=min(Min,n/data*price);
22         }else{
23             if(n/data==0){// n<data,可以买
24                 Min=min(Min,price);
25             }else{
26                 Min=min(Min,(n/data+1)*price);//不是约数+1,则数量>n
27             }
28         }
29     }
30     cout<<Min<<endl;
31     return 0;
32 }

 

 

posted @ 2019-12-08 15:34  Nirogo  阅读(235)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3