LeetCode——365.水壶问题【贝祖定理】
题解
AC-Code
using PII = pair<int, int>;class Solution {public:bool canMeasureWater(int x, int y, int z) {stack<PII> stk;stk.emplace(0, 0);auto hash_function = [](const PII& o) {return hash<int>()(o.first) ^ hash<int>()(o.second);};unordered_set<PII, decltype(hash_function)> seen(0, hash_function);while (!stk.empty()) {if (seen.count(stk.top())) {stk.pop();continue;}seen.emplace(stk.top());auto [remain_x, remain_y] = stk.top();stk.pop();if (remain_x == z || remain_y == z || remain_x + remain_y == z) {return true;}// 把 X 壶灌满。stk.emplace(x, remain_y);// 把 Y 壶灌满。stk.emplace(remain_x, y);// 把 X 壶倒空。stk.emplace(0, remain_y);// 把 Y 壶倒空。stk.emplace(remain_x, 0);// 把 X 壶的水灌进 Y 壶,直至灌满或倒空。stk.emplace(remain_x - min(remain_x, y - remain_y), remain_y + min(remain_x, y - remain_y));// 把 Y 壶的水灌进 X 壶,直至灌满或倒空。stk.emplace(remain_x + min(remain_y, x - remain_x), remain_y - min(remain_y, x - remain_x));}return false;}
};
LeetCode——365.水壶问题【贝祖定理】相关推荐
- [BFS][贝祖定理]leetcode365:水壶问题(medium)
题目: 题解: 思路1:BFS 枚举所有的状态 本题要是想枚举所有的状态扩展到终点的话,只能使用 BFS,使用 DFS 会递归嵌套过多导致栈溢出. 思路2:贝祖定理 而贝祖定理告诉我们,ax+by=z ...
- Leetcode.365 水壶问题
题目链接 Leetcode.365 水壶问题 mid 题目描述 有两个水壶,容量分别为 x和 y升.水的供应是无限的.确定是否有可能使用这两个壶准确得到 z升. 如果可以得到 z升水,最后请用以上水壶 ...
- ACM数论 裴蜀定理(贝祖定理)
一.内容定义 「裴蜀定理」,又称贝祖定理(Bézout's lemma).是一个关于最大公约数的定理.其内容定义为:对于不全为零的任意整数 a 和 b,记二者的最大公约数为 g 即 gcd(a,b) ...
- 裴蜀定理(贝祖定理)
在介绍裴蜀定理前,我们先看一个比较经典的问题: 有两个容量分别为 x升 和 y升 的水壶以及无限多的水.请判断能否通过使用这两个水壶,从而可以得到恰好 z升 的水? 如果可以,最后请用以上水壶中的一或 ...
- 有关贝祖定理的一个小问题
有关贝祖定理的一个小问题 所谓贝祖定理是说: 两个整数 a.b 是互质的.等价于方程 ax+by=1有整数解. 当然. 贝祖定理另一种更一般的形式,说的是两个整数 a.b有最大公因数是c,等价于方程 ...
- 裴蜀定理(或 贝祖定理 )
裴蜀定理(或 贝祖定理 ),说明了对任何 整数 a.b和它们的 最大公约数 d,关于 未知数 x和y的线性不定方程(称为裴蜀等式):若a,b是整数,且 gcd (a,b)=d,那么对于任意的整数x,y ...
- 扩展欧几里得算法及贝祖定理的证明
欧几里得算法 公式表述: g c d ( a , b ) = g c d ( b , a % b ) gcd(a,b)=gcd(b,a\%b) gcd(a,b)=gcd(b,a%b) 证明: a a ...
- 贝祖定理及其逆定理的几种证明
文章目录 前言 贝祖定理 贝祖定理的证明 1.整除方法 2.辗转相减法 3.归纳法 贝祖定理逆定理的证明 内容 证明 总结 前言 第一次写CSDN的博客,因为我是学数学的,也学一些代码但是不多,所以文 ...
- python【数据结构与算法】贝祖定理简单讲解
文章目录 1 概念 题目举例: 2 代码 1 概念 a,b是整数,且gcd(a,b)=d,那么对于任意的整数x,y,ax+by都一定是d的倍数,!!!---->>>可以推出结论:特别 ...
- LeetCode 365. 水壶问题
365. 水壶问题 题目链接-365. 水壶问题 解题思路 裴蜀定理 裴蜀等式:若a,ba,ba,b是整数,且gcd(a,b)=dgcd(a,b)=dgcd(a,b)=d,那么对于任意的整数x,yx, ...
最新文章
- 恼人的函数指针(二)
- 20岁以后的男人应该知道的一些事,看一看吧
- php auth和rbac区别,php中比rbac更好的权限认证的方式auth类认证
- [tp5] thinkPHP5-渲染模板的方式
- 了解JVM运行时的内存分配
- 需求分析模板_看完总经理做的公司财务经营分析报告,怪不得人家能拿年薪150万...
- stm32f407 spi3 mosi没有输出_正点原子STM32F407探索者开发板资料连载第56章 USB 读卡器实验
- css3中定义required,focus,valid和invalid样式
- matlab现值与终值函数_个人家庭投资理财基础(二 单利、复利、终值、现值、内部收益率)...
- 威联通(NAS)搭建个人音乐中心
- 妇产科护理学复习重点
- 复杂网络作业二:第一题——Wikipedia vote网络的基本分析
- 会计专业计算机工具,会计工作需要用哪些工具
- 基于BP神经网络算法的性别识别
- 有关mean iou 言简意赅的介绍 及python 代码实现
- 基于V4L2的视频驱动开发(2
- 全国程序员高考卷,开始答题!
- 帕萨特加载模式启用怎么解除_关闭帕萨特自动启停功能的方法
- nginx reload和reopen
- Revit二开-设备连接(以消火栓为例)