吐槽

果然让人很疑惑,这道题,对于我这种数学渣渣来说太不友好了,哪里想得到结论,猜也猜不到。

思路一

纯数学,见过的飞快切掉,没见过的就...

结论就是:已知$a,b$为大于$ 1 $的互质的正整数,则使不定方程$ax+by=c$ 不存在非负整数解的最大整数
好像是叫什么赛瓦维斯特定理,但是除了这道题的题解之外,我没有在其它任何地方搜到,跟数学相关的痕迹一点都没有,太神奇了,难道这是一个只有$OIer$才研究的公式
证明一下吧。
首先,先证$ax+by=ab−a−b(a,b>1,(a,b)=1)$不存在非负整数解。
用反证法,假设存在$x>=0,y>=0$,使得 $ax+by=ab−a−b(a,b>1,(a,b)=1)$成立。

移项,得$a*(x+1)+b*(y+1)=a*b$

$a*(x+1)=b*(a-y-1)$
又因为$(a,b)=1$
则 $b\mid (x+1)$

同理可证:$a|(y+1)$
又因为$x>=0,y>=0$

所以$x>=b,y>=a$
则$a*(x+1)+b*(y+1)>=ab+ba>=2ab$

因为$a>1,b>1$

所以$ab>1$

所以$2ab>a$

与之前假设的$a*(x+1)+b*(y+1)=a*b$矛盾,所以假设不成立。

接下来,需要证明$ax+by=c$ $(a,b>1,(a,b)=1)$中,对于所有的$c>ab-a-b$,方程都存在非负整数解

设$c=ka+m-a-b(k>=b,a<=m<=a-1)$,即$ax+by=ka+m-a-b(k>=b,1<=m<=a-1)$

因为$(a,b)=1$,根据裴蜀定理,可知存在$x_0,y_0∈Z$,使$ax_0+by_0=1$

所以存在$x_0,y_0∈Z$,使$ax_0+by_0=m$

$y_0=(m-ax_0)/b$,对于$m%b$的不同,有$b-1$种$x_0$的取值,使得$y_0$是整数

我们令$-(b-1)<=x_0<=-1$,以此来先保证$y_0>=0$

由于$-ax_0>1,m>=1$,所以事实上$y_0>=1$

于是取$y=y_0-1$,则$y>=0$

则$x_0=(m-by_0)/a$,

$x=(ka+m-a-b-by)/a=k-1+(m-b-by)/a=k-1+(m-b-b(y0-1))/a=k-1+(m-by_0)/a=k-1+x_0$

又因为$-(b-1)<=x_0<=-1$,则$-(b-1)+k-1<=x<=-1+k-1$,$-b+k<=x<=k-2$

又因为$k>=b$,则$-b+k>=0$,则$x>=0$

得证。

思路二

暴力打表找规律,不过在没有OEIS的情况下我一般都找不出来的...

这就要看运气了

代码

说实话,这道题不贴代码都可以qwq

  1. #include<iostream>
  2. #include<string>
  3. #include<cstdio>
  4. #include<cstring>
  5. #include<queue>
  6. #include<algorithm>
  7. #include<vector>
  8. using namespace std;
  9. #define N 255
  10. #define ll long long
  11. #define INF 0x3f3f3f3f
  12. ll a,b;
  13. int main()
  14. {
  15. scanf("%lld %lld",&a,&b);
  16. printf("%lld\n",a*b-a-b);
  17. return ;
  18. }

NOIp D1T1 小凯的疑惑的更多相关文章

  1. NOIP 2017 小凯的疑惑

    # NOIP 2017 小凯的疑惑 思路 a,b 互质 求最大不能表示出来的数k 则k与 a,b 互质 这里有一个结论:(网上有证明)不过我是打表找的规律 若 x,y(设x<y) 互质 则 : ...

  2. 洛谷 P3951 NOIP 2017 小凯的疑惑

    洛谷 P3951 NOIP 2017 小凯的疑惑 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付 ...

  3. NOIP2017 D1T1小凯的疑惑

    这应该是近年来最坑的第一题了. 我第一眼看到这题上来就打表,数据范围告诉我复杂度应该是log级的,然而一个小时后才发现是一个输出结论. 设较小数是a 较大数是b 写出几组可以发现一个规律就是一旦出现连 ...

  4. NOIP 2017 小凯的疑惑(同余类)

    题意 给出两个互质的数a,b问最大的不能被xa+yb(x,y>=0)表示的数.(a,b<=109) 题解 NOIPday1T1一道数论题,不知埋葬了多少人的梦想. 用同余类去解释. 我们依 ...

  5. NOIP2017 D1T1 小凯的疑惑

    洛谷P3951 看到题目,很容易想到这一题是求使ax+by=c(a,b,c∈N)无非负整数解的最大c 由裴蜀定理可知方程一定有整数解(a,b互素,gcd(a,b)=1|c) 解法一:暴力枚举 看到题目 ...

  6. luogu 3951 小凯的疑惑

    noip2017 D1T1 小凯的疑惑 某zz选手没有看出这道结论题,同时写出了exgcd却不会用,只能打一个哈希表骗了30分 题目大意: 两个互质的正整数a和b,求一个最小的正整数使这个数无法表示为 ...

  7. 2017提高组D1T1 洛谷P3951 小凯的疑惑

    洛谷P3951 小凯的疑惑 原题 题目描述 小凯手中有两种面值的金币,两种面值均为正整数且彼此互素.每种金币小凯都有 无数个.在不找零的情况下,仅凭这两种金币,有些物品他是无法准确支付的.现在小 凯想 ...

  8. 联赛膜你测试20 T1 Simple 题解 && NOIP2017 小凯的疑惑 题解(赛瓦维斯特定理)

    前言: 数学题,对于我这种菜B还是需要多磨啊 Simple 首先它问不是好数的数量,可以转化为用总数量减去是好数的数量. 求"好数"的数量: 由裴蜀定理得,如果某个数\(i\)不能 ...

  9. 【比赛】NOIP2017 小凯的疑惑

    找规律:ans=a*b-a-b 证明:(可见 体系知识) gcd(A, B) = 1 → lcm(A, B) = AB 剩余类,把所有整数划分成m个等价类,每个等价类由相互同余的整数组成 任何数分成m ...

随机推荐

  1. Ruby笔记

    1.数组遍历方法总结 array = (1..10).to_a length = array.length length.times do t print "#{array[t]} &quo ...

  2. css设置元素垂直居中的几个方法

    最近有人问我怎么设置元素垂直居中?我....(这么基础的东西都不会?我有点说不出话来),  不过还是耐心的教了他几个方法,好吧教完他们,顺便把这些方法整理一下 第一种:通过设置成为表格元素的方式来实现 ...

  3. SQL中Charindex和Oracle中对应的函数Instr

    转:http://blog.csdn.net/zhuyu19911016520/article/details/8568640 sql :charindex('字符串',字段)>0 charin ...

  4. 在Controller中使用AOP

    转:http://usherlight.iteye.com/blog/1306111 在Controller中使用AOP的问题主要在于如何让Controller能够被检测到. Controller和其 ...

  5. HDU 6191 Query on A Tree ( 2017广西邀请赛 && 可持久化Trie )

    题目链接 题意 : 给你一棵树.树上的每个点都有点权.之后有若干次问询.每次问询给出一个节点编号以及一个整数 X .问你以给出节点为根的子树中哪个节点和 X 异或最大.输出这个值 分析 : 看到这种树 ...

  6. sh_03_列表的数据统计

    sh_03_列表的数据统计 name_list = ["张三", "李四", "王五", "王小二", "张三 ...

  7. ReactJS 结合 antd-mobile 开发 h5 应用基本配置

    在 ReactJS 较为初级的使用 antd-mobile 使用时候直接加载 node_modules 文件中的相关 CSS,这个使用方法效率低:更高明的方法则按需加载,需要设置如下: 在 packa ...

  8. HDU1257--最少拦截系统(DP)

    Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submission( ...

  9. AcWing 107. 超快速排序(归并排序 + 逆序对 or 树状数组)

    在这个问题中,您必须分析特定的排序算法----超快速排序. 该算法通过交换两个相邻的序列元素来处理n个不同整数的序列,直到序列按升序排序. 对于输入序列9 1 0 5 4,超快速排序生成输出0 1 4 ...

  10. [pytorch笔记] 调整网络学习率

    1. 为网络的不同部分指定不同的学习率 class LeNet(t.nn.Module): def __init__(self): super(LeNet, self).__init__() self ...