Usaco Beef McNuggets——当Gcd(p,q)=1时,最大无法表示成px+qy(x,y>=0)的数是pq-p-q
2016-11-26 16:49
113 查看
如果读者做过 Usaco 4.1.1 Beef McNuggets,那么一定会对这道题正解中的神奇的范围产生疑问,鄙人不才,也一直没有弄懂这个问题,直到有一天,WYT(无用彤) found out a very very simple article in the Internet,我才知道了证明。
有p,q两个正整数且gcd(p,q)=1
那么最大的无法用px+qy(x,y>=0)的正整数是p×q-p-q。
大于p×q-p-q的正整数都可以用px+qy的形式表示。
update 2018.3.14
这篇博客是好久前写的了,囿于之前的水平太低了,所以有很多错误(还未完成),给读者带来不便请谅解。
相信现在看到这东西的人都知道NOIP2017 D1 T1。
博主很幸运,记住了结论,秒了这题,但是博主也很倒霉,机房里的%lld用不了,博主用了%I64d成功爆零。
现在重新修正一下证明。
我们知道条件gcd(p,q)= 1
这说明i*p mod q (0 <= i <= q - 1)是互不相同的。
设某一数是n。
那么n = k*p(mod q)(0 <= k <= q - 1),我想这个应该没有什么问题。
如果n >= k *p, n = k *p +q*t(t >= 0)
要不能表示,n最大取k*p - q
当k取q - 1时,n最大是(q - 1) *p - q = p *q - p -q
有p,q两个正整数且gcd(p,q)=1
那么最大的无法用px+qy(x,y>=0)的正整数是p×q-p-q。
大于p×q-p-q的正整数都可以用px+qy的形式表示。
update 2018.3.14
这篇博客是好久前写的了,囿于之前的水平太低了,所以有很多错误(还未完成),给读者带来不便请谅解。
相信现在看到这东西的人都知道NOIP2017 D1 T1。
博主很幸运,记住了结论,秒了这题,但是博主也很倒霉,机房里的%lld用不了,博主用了%I64d成功爆零。
现在重新修正一下证明。
我们知道条件gcd(p,q)= 1
这说明i*p mod q (0 <= i <= q - 1)是互不相同的。
设某一数是n。
那么n = k*p(mod q)(0 <= k <= q - 1),我想这个应该没有什么问题。
如果n >= k *p, n = k *p +q*t(t >= 0)
要不能表示,n最大取k*p - q
当k取q - 1时,n最大是(q - 1) *p - q = p *q - p -q
相关文章推荐
- 最大无法表示成px+qy(x>=0,y>=0)的数
- 最大无法表示成px+qy(x>=0,y>=0)的数
- 最大无法表示成px+qy(x>=0,y>=0)的数
- 数论:px+py 不能表示的最大数为pq-p-q的证明
- 相同的代码在eclipse中编译成功,但是用ant编译失败。无法确定<T>T的类型参数;对于上限为int,java.lang.Object的类型变量T,不存在唯一最大实例
- 无法确定 <E>E 的类型参数;对于上限为 int,java.lang.Object 的类型变量 E,不存在唯一最大实例
- IIS之应用程序池-Web园-最大工作进程>1时系统出现问题
- IDEA编译报无法确定 <T>T 的类型参数 ;对于上限为int,java.lang.Object 的类型变量 T,不存在唯一最大实例,解决方案
- 无法确定 <T>T 的类型参数 ;对于上限为int,java.lang.Object 的类型变量 T,不存在唯一最大实例
- (a,b)=1 ax+by x>0 y>0的最大不能表示数
- 将两个正整数的最大公约数表示成两个数的线性组合, data1 * n + data2 *m = gcd(data1, data2)
- 一个正整数有可能可以被表示为n(n>=2)个连续正整数之和--算法求解
- usaco 4.1 Beef McNuggets 搜索
- 无法创建大小为 8080 的行,该值大于允许的最大值 8060。
- Perl中的符号 -&gt;、=&gt; 和 :: 分别表示什么意思?
- while(cin>>str)无法结束的问题(转)
- 数据类型:整数最小值为何不是最大值的相反数(为什么八位二进制数表示范围是:-128~127 ) ?
- ISA服务器IP最大连接数导致无法上网一例
- 5.12先对地震遇难的表示默哀,今晚有多少人无法入眠呀
- 60分以下的用C表示。 60-89分之间的用B表示 题目:利用条件运算符的嵌套来完成此题:学习成绩&gt; =90分的同学用A表示