题目描述

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

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

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

输入格式:

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

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

  保证所有的7个数都是不超过10000的正整数。

输出格式:

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

链接 https://www.luogu.org/problemnew/show/1909

  说实话吧,这个题确实不太想写(大水题儿??居然还因为0x3fWA了一次。。。真是智障了@_@),可是机房的小伙伴居然有不会的。。。只能勉为其难了==

   这个题确实没太有什么难点,就是学了几个周的小伙伴都能有思路,一共有三种包装,每一种包装里都会包含一定数量的铅笔,并有一定的价格,我们用n整除一下x,就会的到最少需要买这种包装的数量,然后将n/x在乘上y(包装的价格),就会得出只买这种包装最少需要的钱,一共三次,取这三次的最小值即可。

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,m,ans=0x3fffffff,x,y;
 7     scanf("%d",&n);
 8     for(int i=1;i<=3;i++){
 9         scanf("%d%d",&x,&y);//x表示每个包装内铅笔的数量,y表示每个包装的价格;
10         m=n/x;
11         ans=min(ans,m*y);
12     }
13     printf("%d\n",ans);
14     return 0;
15 }

点击查看代码

  但是,我们漏了一个很重要的地方,也就是说,上面的代码是错误的解法(想一下为什么)。

  答案是:我们将 n/x (整除)将会的到下取整的答案,举个例子吧,当一共需要买 25(n) 只铅笔时,这种包装每个单位中有包含 17(x) 支铅笔,所以n/x会得到 1 而不是我们想要的 2 。但是如果是 n=25、x=5时,我们恰好能得到我们想要的答案(n/x) 5 ,也就是说当n能够整除x时  if(n%x==0),我们恰好能得到想要的答案,但  if(n%x!=0),我们会得到比想要的答案小 1 的结果,我们便需要将得到的 n/x ++。所以加上第二个if语句特判一下就可以完美的解决这个问题了!

 1 #include<cstdio>
 2 #include<iostream>
 3 using namespace std;
 4 int main()
 5 {
 6     int n,m,ans=0x3fffffff,x,y;
 7     scanf("%d",&n);
 8     for(int i=1;i<=3;i++){
 9         scanf("%d%d",&x,&y);//x表示每个包装内铅笔的数量,y表示每个包装的价格;
10         m=n/x;
11         if(n%x) m++;
12         ans=min(ans,m*y);
13     }
14     printf("%d\n",ans);
15     return 0;
16 }

这才是正确代码==

转载于:https://www.cnblogs.com/RisingGods/p/8127275.html

LuoGu P1909 买铅笔???相关推荐

  1. P1909 买铅笔(C语言)

    P1909 买铅笔 1.40分思路 可以用一个二维数组将价格和铅笔的数量存入,然后用while判断,寻找最大的数量 最后用for循环,将最小的价格寻找出来并输出. 2.源码 #include<s ...

  2. 【洛谷】P1909 买铅笔

    题目地址: https://www.luogu.com.cn/problem/P1909 题目描述: P老师需要去商店买 n n n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 3 3 3种 ...

  3. Java 洛谷 P1909 买铅笔讲解

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

  4. 洛谷新手村P1909 买铅笔

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

  5. NOIP2016 复赛普及组第 1 题 买铅笔 方法一

    /* NOIP2016 复赛普及组第 1 题 买铅笔 方法一  P1909 买铅笔 https://www.luogu.org/problem/P1909 */ #include<cstdio& ...

  6. 【NOIP】入门题题解— —小玉买文具、P老师买铅笔

    author:&Carlton tags:NOIP,模拟题,语言基础练习题 language:C++ website:洛谷能力提升综合题单Part1 入门阶段 - 题单 - 洛谷 | 计算机科 ...

  7. 洛谷——P1909 [NOIP2016 普及组] 买铅笔

    P1909 [NOIP2016 普及组] 买铅笔 题目描述 P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有 33种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不 ...

  8. P1909 [NOIP2016 普及组] 买铅笔

    P1909 [NOIP2016 普及组] 买铅笔 提交308.01k 通过130.89k 时间限制1.00s 内存限制125.00MB 提交答案加入题单复制题目 做题计划(首页) 个人题单 团队题单 ...

  9. 【NOIP冲刺题库题解】1973:【16NOIP普及组】买铅笔

    1973:[16NOIP普及组]买铅笔 [题目描述] P老师需要去商店买n支铅笔作为小朋友们参加NOIP的礼物.她发现商店一共有3种包装的铅笔,不同包装内的铅笔数量有可能不同,价格也有可能不同.为了公 ...

最新文章

  1. 图解DotNet框架系列
  2. SQL Server 阻止了对组件 \'Ad Hoc Distributed Queries\' 的访问
  3. JZOJ.5234【NOIP2017模拟8.7】外星人的路径
  4. linux c编译错误storage class specified for parameter XXX
  5. 用python绘制漂亮的图形-python如何画出漂亮的地图?
  6. Elasticsearch深入11 运维
  7. springmvc简述
  8. 文本信息检索基本知识【转】
  9. 【Android 逆向】Android 进程注入工具开发 ( 远程进程 注入动态库 文件操作 | Android 进程读取文件所需的权限 | fopen 打开文件标志位 | 验证文件权限 )
  10. 【转】10分钟精通SharePoint - VS开发模板
  11. concurrent包下线程池类小结
  12. 吴恩达神经网络和深度学习-学习笔记-17-batch归一化(Batch Normalization)(BN)
  13. win7系统网络计算机,Win7系统打开局域网没看到其他计算机的修复方法
  14. ip地址在c语言中长度是多少_c语言中(++i)+(++i)+(++i)究竟等于多少?
  15. 电脑桌面计算机软件不见了,电脑桌面图标不见了怎么恢复?
  16. Neuralog.v2013.06 1CD (测井曲线智能矢量化软件)
  17. 硬盘属不属于计算机主机组成,电脑主机是由哪些硬件组成
  18. 【G4基础04】2.4 How to Specify Particles
  19. ttys和tty_Linux中tty、pty、/dev/ttySn等概念讲解
  20. 2017 沪牌中标后流程

热门文章

  1. 《一个操作系统的实现》——pmtest1.asm详解
  2. Document,Node,Element,HTMLDocument ,HTMLCollection,HTMLElement,NodeList
  3. gridview的buttonfield获取该行的索引值(实例讲解)
  4. android面试题总结加强
  5. android oom 全解析
  6. shell实例第6讲:检查主机存活状态
  7. MySQl笔记8:把good表中商品名为‘诺基亚xxxx‘的商品,改为‘HTCxxxx‘
  8. 什么是逻辑分析仪?逻辑分析仪的参数、使用步骤和优势
  9. 以指针的形式和以下标的形式访问指针?以指针的形式和以下标的形式访问数组?
  10. 如何在一台电脑上同时启动多个tomcat,及如何解决tomcat一闪而过