[USACO] Beef McNuggets
【题目描述】
农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块。奶牛们正在想尽一切办法让这种可怕的设想泡汤。奶牛们进行斗争的策略之一是“劣质的包装”。“看,”奶牛们说,“如果你只用一次能装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相关推荐
- usaco Beef McNuggets
这两天贼烦,ccf炸了,还有一个烦心事.哎我都不知道自己能不能坚持下去了.马上期末考了.这段时间还是抓紧时间复习吧同时刷usaco的节奏要跟以前一样了,毕竟课少了. 题解: 只要你知道以下的数论结论, ...
- P2737 [USACO4.1]麦香牛块Beef McNuggets 数学题 + 放缩思想
https://www.luogu.org/problem/show?pid=2737#sub 先说一个结论:对于两个数p, q,且gcd(p, q) = 1(这个很重要,是条件来的).他们不能组合成 ...
- 【luogu2737】 [USACO4.1]麦香牛块Beef McNuggets [动态规划 完全背包][数学 扩展欧几里德]...
证明应该是小凯的诱惑的升级版 应该可以用那个同余最短路来跑 1 #include<bits/stdc++.h> 2 using namespace std; 3 #define ll lo ...
- [USACO4.1]麦香牛块Beef McNuggets By cellur925
题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是"劣质的包装".& ...
- [USACO4.1]麦香牛块Beef McNuggets 题解报告
题目描述 农夫布朗的奶牛们正在进行斗争,因为它们听说麦当劳正在考虑引进一种新产品:麦香牛块.奶牛们正在想尽一切办法让这种可怕的设想泡汤.奶牛们进行斗争的策略之一是"劣质的包装".& ...
- 【USACO题库】 动态规划 汇总(普及-/普及)
数据结构提高是够用了=-=虽然树状数组没学 但是其他类问题只能打到普及 普及啊啊啊!!! 而且这边省选组都是什么仙人掌啊,什么系什么点对啊...感觉数据结构并没有什么用 (实际上很有用但我不会用就是了 ...
- USACO Section 4
前言 好久没更新这个系列了,最近闲的无聊写一下.有两题搜索懒得写了. P2737 [USACO4.1]麦香牛块Beef McNuggets https://www.luogu.com.cn/probl ...
- hdu与poj题目分类
POJ 初期: 一.基本算法: (1)枚举. (poj1753,poj2965) (2)贪心(poj1328,poj2109,poj2586) (3)递归和分治法. (4)递推. (5)构造法.(po ...
- 杭电oj题目题型分类(转)
1001 整数求和 水题 1002 C语言实验题--两个数比较 水题 1003 1.2.3.4.5... 简单题 1004 渊子赛马 排序+贪心的方法归并 1005 Hero In Maze 广度搜索 ...
最新文章
- 1115 Counting Nodes in a BST (30 分)【难度: 一般 / 知识点: 构建二叉搜索树】
- Java基础 正则表达式 Pattern和Matcher
- 【C++】 C++标准模板库(三) Map
- Unmarshaller解析xml文件
- Android官方开发文档Training系列课程中文版:分享文件之获取文件信息
- hive-05-Execution Error, return code 3 from org.apache.hadoop.hive.ql.exec.mr.MapredLocalTask
- C++中STL-queue使用方法
- (转)如何在MySql中记录SQL日志(例如Sql Server Profiler)
- failed to execute ‘dot‘, make sure the Graphviz executables are on your systems‘ PATH
- 添加类库引用后,命名空间出错的解决方案
- 为什么打印出来的文件右边有阴影_怎样将十几几十页的长文件文档打印成A4纸对折的小册子?...
- 张小龙《微信背后的产品观》演讲文字版
- Windows 7 插件KB4474419安装 Symantec Endpoint Protection 只能安装在具有SHA-2代码签名支持更新(KB4474419)的系统上
- 张益唐被曝已证明黎曼猜想相关问题,震动数学界(文末送书)
- matlab读取txt文件大全
- 求生之路2 服务器 修改难度,求生之路2服务器指令及难度参数设置
- linux python 路径获取
- 车载CarPlay盒子的蓝牙应用案例
- 全角转半角与半角转全角
- DV SSL 与 OV SSL 的区别
热门文章
- C语言开发笔记(一)自动转换和强制转换
- 计算器软件设计和计算机软件设计区别,求一个模拟计算器程序
- 《MySQL 8.0.22执行器源码分析(4.1)Item_sum类以及聚合》
- Opencv实现利用滑动条来调整阈值
- Python | 程序以字符串长度打印单词
- 螺旋遍历_螺旋形式的水平阶遍历
- python如何操作oracle数据库_python操作oracle数据库
- ret2shellcdoe
- 远控免杀专题8---BackDoor-Facktory免杀
- js取字符串后四位_JS逆向 | 某验滑块加密参数逆向分析