【题目描述】

农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装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。

【解题报告】

蛋碎的一个题。

引理:对于2个自然数q,p,若gcd(q,p)=1,则不能用xq+yp(x,y为任意自然数)的最大数为q*p-q-p。

 1 { 2 ID:wwzhwdw1 3 PROG:nuggets 4 LANG:PASCAL 5 } 6 program nuggets; 7 var 8   maxn,j,n,i:longint; 9   a:array[0..11]of longint;10   f:array[0..90000]of boolean;11 12 procedure init;13 begin14   assign(input,'nuggets.in');15   reset(input);16   assign(output,'nuggets.out');17   rewrite(output);18 end;19 20 procedure outit;21 begin22   halt;23   close(input);24   close(output);25 end;26 27 function min(a,b:longint):longint;28 begin29   if a<b then exit(a);30   exit(b);31 end;32 33 function gcd(a,b:longint):longint;34 begin35   if b=0 then gcd:=a36   else37   gcd:=gcd(b,a mod b);38 end;39 40 procedure main;41 begin42   readln(n);43   for i:=1 to n do44   begin45     readln(a[i]);46     if a[i]=1 then47     begin48       writeln(0);49       outit;50     end;51   end;52   maxn:=maxlongint;53   for i:=1 to n-1 do54   for j:=i+1 to n do55   begin56     if gcd(a[i],a[j])=1 then maxn:=min(maxn,a[i]*a[j]-a[i]-a[j]);57   end;58   if maxn=maxlongint then59   begin60     writeln(0);61     outit;62   end;63   fillchar(f,sizeof(f),0);64   f[0]:=true;65   for i:=1 to n do66   for j:=a[i] to maxn do if f[j-a[i]] then f[j]:=true;67   for i:=maxn downto 1 do if (not f[i]) then68   begin69     writeln(i);70     outit;71   end;72   writeln(0);73 end;74 75 begin76   init;77   main;78   outit;79 end.80 81  

转载于:https://www.cnblogs.com/wwzhwdwd/archive/2011/08/27/2155576.html

[USACO] Beef McNuggets相关推荐

  1. usaco Beef McNuggets

    这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...

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

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

  3. 【luogu2737】 [USACO4.1]麦香牛块Beef McNuggets [动态规划 完全背包][数学 扩展欧几里德]...

    证明应该是小凯的诱惑的升级版 应该可以用那个同余最短路来跑 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll lo ...

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

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

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

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

  6. 【USACO题库】 动态规划 汇总(普及-/普及)

    数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...

  7. USACO Section 4

    前言 好久没更新这个系列了,最近闲的无聊写一下.有两题搜索懒得写了. P2737 [USACO4.1]麦香牛块Beef McNuggets https://www.luogu.com.cn/probl ...

  8. hdu与poj题目分类

    POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...

  9. 杭电oj题目题型分类(转)

    1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...

最新文章

  1. 1115 Counting Nodes in a BST (30 分)【难度: 一般 / 知识点: 构建二叉搜索树】
  2. Java基础 正则表达式 Pattern和Matcher
  3. 【C++】 C++标准模板库(三) Map
  4. Unmarshaller解析xml文件
  5. Android官方开发文档Training系列课程中文版:分享文件之获取文件信息
  6. hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
  7. C++中STL-queue使用方法
  8. (转)如何在MySql中记录SQL日志(例如Sql Server Profiler)
  9. failed to execute ‘dot‘, make sure the Graphviz executables are on your systems‘ PATH
  10. 添加类库引用后,命名空间出错的解决方案
  11. 为什么打印出来的文件右边有阴影_怎样将十几几十页的长文件文档打印成A4纸对折的小册子?...
  12. 张小龙《微信背后的产品观》演讲文字版
  13. Windows 7 插件KB4474419安装 Symantec Endpoint Protection 只能安装在具有SHA-2代码签名支持更新(KB4474419)的系统上
  14. 张益唐被曝已证明黎曼猜想相关问题,震动数学界(文末送书)
  15. matlab读取txt文件大全
  16. 求生之路2 服务器 修改难度,求生之路2服务器指令及难度参数设置
  17. linux python 路径获取
  18. 车载CarPlay盒子的蓝牙应用案例
  19. 全角转半角与半角转全角
  20. DV SSL 与 OV SSL 的区别

热门文章

  1. C语言开发笔记(一)自动转换和强制转换
  2. 计算器软件设计和计算机软件设计区别,求一个模拟计算器程序
  3. 《MySQL 8.0.22执行器源码分析(4.1)Item_sum类以及聚合》
  4. Opencv实现利用滑动条来调整阈值
  5. Python | 程序以字符串长度打印单词
  6. 螺旋遍历_螺旋形式的水平阶遍历
  7. python如何操作oracle数据库_python操作oracle数据库
  8. ret2shellcdoe
  9. 远控免杀专题8---BackDoor-Facktory免杀
  10. js取字符串后四位_JS逆向 | 某验滑块加密参数逆向分析