ACM:数论专题——拓展欧几里得

题目描述:
    小Hi和小Ho周末在公园溜达。公园有一堆围成环形的石板,小Hi和小Ho分别站在不同的石板上。已知石板总共有m块,编号为 0..m-1,小Hi一开始站在s1号石板上,小Ho一开始站在s2号石板上。小Ho每次移动v1块,小Hi移动v2块。求最少经过多长时间,两人可以到达同一块石板。

解答:
    假设两人经过t时间后,就会相遇,那么,我们就可以列出如下的方程:
s1 + v1 × t = s2 + v2 × t - km.................................(i)
这表明:当两人到达同一位置时,其中一人恰好比另一人多走了k圈。对上面的方程整理一下,可得:
(v1 - v2) × t + mk = s2 - s1.................................(ii)
于是,题目中的问题就转化为求解以上方程解的问题。根据题意,上式中的m和t一定是正整数,只要能找到上面方程的一组正整数解,同时使得t的值尽可能小,就是本题的结果。如果方程无正整数解,则本题就无解,即两人永远不会相遇。

·判定:
    判定以上的方程是否有整数解用到了拓展欧几里得定理。定理内容如下:
    二元一次方程:Ax + By = C (A, B, C >0)。它有无数个解,但有整数解的条件是:C可以被A和B的最大公约数整除(证明不会)。 即:C % gcd(A, B) = 0 <=> 方程 Ax + By = C 有整数解。
    对应于上面的式(ii),参数A即为(v1-v2), B即为m,C即为s2 - s1, 而x就是t,y即为k。

    式中m一定是整数,而如果v2 > v1,那么将上述方程改为:
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值