P2737 [USACO4.1]麦香牛块Beef McNuggets

  • 13通过
  • 21提交
  • 题目提供者该用户不存在
  • 标签USACO
  • 难度普及+/提高

提交  讨论  题解

最新讨论

  • 暂时没有讨论

题目描述

农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装3块、6块或者10块的三种包装盒包装麦香牛块,你就不可能满足一次只想买1、2、4、5、7、8、11、14或者17块麦香牛块的顾客了。劣质的包装意味着劣质的产品。”

你的任务是帮助这些奶牛。给出包装盒的种类数N(1<=N<=10)和N个代表不同种类包装盒容纳麦香牛块个数的正整数(1<=i<=256),输出顾客不能用上述包装盒(每种盒子数量无限)买到麦香牛块的最大块数。如果所有购买方案都能得到满足或者不存在不能买到块数的上限,则输出0。 不能买到的最大块数(倘它存在)不超过2,000,000,000。

输入输出格式

输入格式:

第1行: 包装盒的种类数N

第2行到N+1行: 每个种类包装盒容纳麦香牛块的个数

输出格式:

输出文件只有一行数字:顾客不能用包装盒买到麦香牛块的最大块数或0(如果所有购买方案都能得到满足或者顾客不能买到的块数没有上限)。

输入输出样例

输入样例#1

3

3

6

10

输出样例#1

17

说明

题目翻译来自NOCOW。

USACO Training Section 4.1

分析:数据可以看作是无限的,即使是2,000,000,000,也绝对会超时,如果有个数学方法能够直接算出来就好了,至少要能缩小范围就好了.

如果p,q为自然数,且gcd(p,q) = 1,那么px + qy不能表示的最大数为pq - p - q,这个比较难证明(其实是我不会证明......)在实际做题中,范围可以只取pq,题目中给的最大的正整数为256,但是给出的方法是两个数的,本题会给多个数,我们可以把每两个数的结果算出,发现影响结果的就是最大的两个数,也就是256和255,鉴于数据比较小,取256^2即可,然后就是简单的枚举了,将0~256^2的数试着能不能用给定的数取到,然后从后往前扫描,如果不能取到的数大于256^2,输出0即可.

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <iostream>
  4. #include <algorithm>
  5.  
  6. int n,a[],vis[];
  7.  
  8. int main()
  9. {
  10. scanf("%d", &n);
  11. for (int i = ; i <= n; i++)
  12. scanf("%d", &a[i]);
  13. vis[] = ;
  14. for (int i = ; i <= ; i++)
  15. for (int j = ; j <= n; j++)
  16. if (i >= a[j])
  17. if (vis[i - a[j]])
  18. vis[i] = ;
  19. int ans = ;
  20. for (int i = ; i >= ; i--)
  21. {
  22. if (!vis[i])
  23. {
  24. ans = i;
  25. break;
  26. }
  27. }
  28. if (ans > )
  29. ans = ;
  30. printf("%d\n", ans);
  31.  
  32. return ;
  33. }

洛谷P2737 [USACO4.1]麦香牛块Beef McNuggets的更多相关文章

  1. 洛谷——P2737 [USACO4.1]麦香牛块Beef McNuggets

    https://www.luogu.org/problemnew/show/P2737 题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办 ...

  2. 洛谷 P2737 [USACO4.1]麦香牛块Beef McNuggets Label:一点点数论 && 背包

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...

  3. P2737 [USACO4.1]麦香牛块Beef McNuggets(完全背包+数论确定上界)

    题目链接:https://www.luogu.org/problem/show?pid=2737 题目大意:农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在 ...

  4. P2737 [USACO4.1]麦香牛块Beef McNuggets

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...

  5. P2737 [USACO4.1]麦香牛块Beef McNuggets 数学题 + 放缩思想

    https://www.luogu.org/problem/show?pid=2737#sub 先说一个结论:对于两个数p, q,且gcd(p, q) = 1(这个很重要,是条件来的).他们不能组合成 ...

  6. [USACO4.1]麦香牛块Beef McNuggets 题解报告

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是"劣质的包装".& ...

  7. [USACO4.1]麦香牛块Beef McNuggets By cellur925

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...

  8. [Luogu2737] [USACO4.1]麦香牛块Beef McNuggets

    题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是“劣质的包装”.“看,”奶牛们说,“如 ...

  9. [USACO4.1]麦香牛块Beef McNuggets

    https://www.luogu.org/problemnew/show/P2737 给出n个数ai,求这n个数不能累加出的最大的数 最大的数无限大或能凑出所有的自然数则输出0 n<=10,a ...

随机推荐

  1. windows mobile 共享PC网络(win7)

    win7系统安装windows mobile,将设备插入底座后,设备并不能直接共享pc的网络直接上网.原来,当插入底座后,需要打开mobile设备中心,切换一下连接网络,或者打开此窗体后确定一下,即可 ...

  2. [git]Git常用命令

    转自:http://www.cnblogs.com/idche/archive/2011/07/05/2098165.htmlGIT 学习笔记 集中化的版本控制系统 CVCS(Centralized ...

  3. .net关于httpModules的应用示例

    这三个对象我们在开发Asp.net程序时经常会用到,似乎很熟悉,但有时 候又不太确定.本文通过一个简单的例子来直观的比较一下这三个对象的使用. HttpModule:Http模块,可以在页面处理前后. ...

  4. 使用BlockingQueue的生产者消费者模式

    BlockingQueue很好的解决了多线程中,如何高效安全“传输”数据的问题.通过这些高效并且线程安全的队列类,为我们快速搭建高质量的多线程程序带来极大的便利.使用场景. 首先它是一个队列,而一个队 ...

  5. HDU 3709 Balanced Number (数位DP)

    Balanced Number Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 65535/65535 K (Java/Others) ...

  6. Red hat 5挂载U盘

    装在虚拟机上的Linux 一.挂载U盘                                                                                  ...

  7. 15个IT技术人员必须思考的问题

    行内的人自嘲是程序猿.屌丝和码农,行外的人也经常拿IT人调侃,那么究竟是IT人没有价值,还是没有仔细思考过自身的价值? 1.搞IT的是屌丝.码农.程序猿? 人们提到IT人的时候,总会想到他们呆板.不解 ...

  8. python 多线程抓取动态数据

    利用多线程动态抓取数据,网上也有不少教程,但发现过于繁杂,就不能精简再精简?! 不多解释,直接上代码,基本上还是很好懂的. #!/usr/bin/env python # coding=utf-8 i ...

  9. quartz定时任务时间设置描述

    这些星号由左到右按顺序代表 : * * * * * * * 格式: [秒] [分] [小时] [日] [月] [周] [年] 序号 说明 是否必填 允许填写的值 允许的通配符 1 秒 是 0-59 , ...

  10. css 选择器优先级的计算过程

    以下转自互联网 下面看看官方对选择器的定义:一个选择器的优先级由四个数字a,b,c,d确定.当比较两个选择器时,先比较a,a值大的优先级高,如果a相等则比较b,b值大的优先级高,以此类推.因此,无论b ...