不定方程:poj 2142+poj 1091(数论+容斥)

来源:互联网 发布:如何淘宝开店认证 编辑:程序博客网 时间:2024/06/15 20:03

     二元一次不定方程ax+by=d与同余方程ax=d(mod b)等价,求解线性同余方程可参考链接:http://blog.csdn.net/u012717411/article/details/42869291

poj 2142 The Balance

题目链接:http://poj.org/problem?id=2142

解题思路:扩展欧几里得很容易得到通解x=x0+b0*t,y=y0-a0*t;问题最关键的是找到特解中|x|+|y|最小的那一组(x,y).

对于| x0+b0*t |+ | y0-a0*t | 取最小值,很容易想到x,y至少有一个是最小非负整数解(x,y至少一个为正且越靠近0才有最小值),所以比较一下两种情况取最小值即可。

参考代码:


poj 1091 跳蚤

题目链接:http://poj.org/problem?id=1091

解题思路:对于n元一次不定方程a1x1+a2x2+……+anxn=d有解的充要条件是(a1,a2,…,an)|d。

本题求n个不超过m的数a1,a2,…,an的组合个数,要求它们的最大公约数gcd(a1,a2,…,an)=1。

参考题解:

http://www.cnblogs.com/DrunBee/archive/2012/09/07/2674602.html(理解容斥定理)

http://blog.csdn.net/yitiaodacaidog/article/details/15462857(所包含的众多知识点)

参考代码+部分注释:









0 0
原创粉丝点击