索引

  • 题目
  • 问题
  • 解决
  • 举个例子来实际感受一下
  • 参考

以下是看了官方题解之后,根据自己的理解画出的示意图,若有理解错误还请大家指出。若没有理解错误,希望大家能通过此示意图理解裴蜀定理的解法。

题目

有两个容量分别为 x升 和 y升 的水壶以及无限多的水。请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水?

如果可以,最后请用以上水壶中的一或两个来盛放取得的 z升 水。

你允许:

  • 装满任意一个水壶
  • 清空任意一个水壶
  • 从一个水壶向另外一个水壶倒水,直到装满或者倒空
    示例 1: (From the famous “Die Hard” example)
输入: x = 3, y = 5, z = 4
输出: True
示例 2:
输入: x = 2, y = 6, z = 5
输出: False

问题

1、裴蜀定理的概念
2、对题目要求的理解
3、如何由此题联想到到裴蜀定理

解决

1、裴蜀定理,简单来说就是:

若x,y是整数,且gcd(x,y)=d,那么对于任意的整数a,b,ax+by都一定是d的倍数,特别地,一定存在整数x,y,使ax+by=d成立。

2、根据题目要求我们可以知道我们可以有如下操作:

  • 装满任意一个水壶:从外界装满
  • 清空任意一个水壶:向外界倒出
  • 从一个水壶向另外一个水壶倒水,直到装满或者倒空:
    所以可知每次操作之后总会有一个桶是满的或者空的,另外一个是空还是满还是非空都可以。

3、由2可知,每次的水的总量总是变化x或者y:这个变化可以理解为
(1)向外界倒出
(2)从外界倒入
注意:这里说的水的总量是两个桶内水的总量的变化总是x或者y。两个桶之间水的转移不算一次变化,因为水的总量没有变化,你只是换了个地方存水而已

那么我们只要找到x和y分别变化了几次能得到z就行了,即 a x + b y = z ax+by=z ax+by=z。

其中a和b代表水的总量变化了a次或者b次,为负代表向外界倒了,为正代表从外界倒入,至于两个桶之间水的转移是不管的,因为无非就是从这个桶倒入另一个桶而已,两个桶内的总量没有变化。

根据这个等式可以想到裴蜀定理。为什么说可以想到呢?前提当然是你要知道这个定理的内容,就如同你要钉一个钉子,知道有锤子这个工具的存在,锤子很坚硬就适合钉钉子(比喻可能不太恰当)。裴蜀定理跟这个公式长得几乎一模一样,而且裴蜀定理求得的值都是x和y的最大公约数的倍数,那么题目给出了x和y,容易得到最大公约数,只要验证z是不是其倍数就能得出答案,至于a和b是几我们并不关心,因为根据裴蜀定理一定存在。

举个例子来实际感受一下

假设:
x = 3 , y = 5 , z = 4 x=3, y=5, z=4 x=3,y=5,z=4
根据裴蜀定理可知
( − 2 ) ∗ 3 + 2 ∗ 5 = 4 (-2)*3 + 2*5 = 4 (−2)∗3+2∗5=4
即 a = − 2 , b = 2 a=-2, b=2 a=−2,b=2
代表:向外界倒出了2次3L的水,从外界向桶内倒入了2次5L的水,然后就得到了4L的水
如图:一定要注意,我们讨论的基本单位是水的总量变化
因为不会加自己切换的图片样式,只能加入gif了

LC365-水壶问题,使用裴蜀定理及图解相关推荐

  1. 365 水壶问题(递归、数学-裴蜀定理)

    1. 问题描述: 有两个容量分别为 x升和 y升的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好z升的水? 如果可以,最后请用以上水壶中的一或两个来盛放取得的z升水. 你允许: 装 ...

  2. 裴蜀定理(贝祖定理)

    在介绍裴蜀定理前,我们先看一个比较经典的问题: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或 ...

  3. CF510D Fox And Jumping(动态规划转换为最短路,O(n^2×2^9) -> O(nlogn),裴蜀定理应用)

    整理的算法模板合集: ACM模板 点我看算法全家桶系列!!! 实际上是一个全新的精炼模板整合计划 以下内容摘自 我的文章:算法竞赛中的数论问题 - 数论全家桶(信奥 / 数竞 / ACM)作者孟繁宇, ...

  4. 【裴蜀定理】BZOJ 1441 MIN

    P4549 [模板]裴蜀定理 这是一道bzoj的权限题,同时又是一道luogu的模板题 在标题上写模板不是很好, 决定放bzoj的名字来撑撑场面 bzoj: 裴蜀定理:dalao题解 显然就很优秀ov ...

  5. BZOJ 2257: [Jsoi2009]瓶子和燃料【数论:裴蜀定理】

    2257: [Jsoi2009]瓶子和燃料 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 1326  Solved: 815 [Submit][St ...

  6. bzoj 1441: Min 裴蜀定理

    题目: 给出\(n\)个数\((A_1, ... ,A_n)\)现求一组整数序列\((X_1, ... X_n)\)使得\(S=A_1*X_1+ ...+ A_n*X_n > 0\),且\(S\ ...

  7. Codeforces #499 E Border ( 裴蜀定理 )

    题目链接 题意 : 给出 N 种纸币.并且给出面值.每种纸币的数量可以任选.问你得出来的数在 k 进制下.末尾位的数有多少种可能.输出具体方案 分析 : 纸币任意选择组成的和 可以用一个一次多项式来表 ...

  8. [BZOJ 1441]Min(裴蜀定理)

    Description 给出n个数(A1...An)现求一组整数序列(X1...Xn)使得S=A1*X1+...An*Xn>0,且S的值最小 Solution 裴蜀定理: 显然gcd(a,b)| ...

  9. BZOJ2299 [HAOI2011]向量 【裴蜀定理】

    题目链接 BZOJ2299 题解 题意就是给我们四个方向的向量\((a,b),(b,a),(-a,b),(b,-a)\),求能否凑出\((x,y)\) 显然我们就可以得到一对四元方程组,用裴蜀定理判断 ...

最新文章

  1. 得到的旋转向量和平移向量转换成旋转矩阵 (SE(3))
  2. 【小白学习PyTorch教程】四、基于nn.Module类实现线性回归模型
  3. SciencePlots科研绘图
  4. JSP静态导入与动态导入
  5. angular js创建表单_如何优雅的使用 Angular 表单验证
  6. 证明task线程是来源于线程池的,线程重用
  7. python何时用list,dict,set
  8. latex 论文绘图: 图像文字重叠
  9. PostgreSQL如何自动更新时间戳?
  10. ScmTools(CAD自动标注插件)v2.0官方版
  11. 纯净版VS2015安装教程(适合初次安装或者重装系统后)
  12. dp hp oracle 备份软件_HP-DP备份软件设置
  13. 新手搭建一个网站(详细完整版)
  14. MySQL的下载与安装教程--超详细
  15. 第2节Socket介绍
  16. 2020年李永乐线性代数强化笔记-线性方程组
  17. mysql 循环之continue
  18. BOM物料清单,金蝶KIS旗舰版专业版金蝶K3WISE生产管理软件ERP
  19. DDDM: A Brain-Inspired Framework for Robust Classification
  20. Deeplab V3+训练自己数据集全过程

热门文章

  1. 【python如何爬取视频】
  2. 苹果系统中有些程序无法强制退出导致无法正常关机怎么办?
  3. java ajax轮询_ajax轮询(ajax轮询实现聊天)
  4. 微软服务器 学生打折吗,微软中国官方商城开启返校季促销活动 为学生和教育人员提供特别优惠-...
  5. [健康]那到底有哪些食物吃了会让我们易长皱纹呢?
  6. 人脸识别新应用!结婚也能“刷脸”扯证啦
  7. AI换脸火了 支付宝还安全吗?官方回应
  8. 担心燃气泄漏,用ESP32 + HaaS Python做个24小时检测设备吧,手机随时随地就能查看,还能异常报警联动
  9. 区块链技术有哪些应用领域?
  10. java 反射机制详解_java反射机制原理详解