LeetCode365.水壶问题
这题我只会数学解法,太菜了😭
其实第一眼没有思路,瞄了一眼标签是“数学”,就开始推公式
假设容量为x升的水壶进行了a次操作,容量为y升的水壶进行了b次操作,最终两水壶中的水总共是z升。可以得到公式:
emm,好眼熟的公式,好像是斐蜀定理。。。
斐蜀定理
对于任意正整数a,b,那么一定存在非零整数x,y,使得
再扩展一下,对于这道题的方程
当且仅当时该二元不定方程才有整数解。因此这道题就可以解决了。
也就意味着当时应满足:,OK了。
代码:
1 | int gcd(int a, int b) |
好像还有BFS的解法,打算再看一下。