拓展欧几里德
muczzcy
这个作者很懒,什么都没留下…
展开
-
SGU 106 The Equation 扩展欧几里得应用
Sol:线性不定方程+不等式求解证明的去搜下别人的证明就好了。。。数学题。#include #include #include using namespace std;long long extend_gcd(long long a,long long b,long long &x,long long &y){ if(a==0&&b==0) return -1; if(b原创 2013-12-15 23:59:11 · 836 阅读 · 0 评论 -
Uva 10413 Crazy Savages
Sol:根据题意可列方程:(c[i] + x*p[i])%m = (c[j] + x*p[j])%m,即:c[i] + x*p[i] = c[j] + x*p[j] + y*m(x,y为未知数)此问题就转换成一元二次方程求解了,扩展欧几里得(题目已经给了N , M的范围,所以只需枚举即可)。#include #include #include using namespace原创 2014-01-16 17:23:41 · 849 阅读 · 0 评论 -
POJ 2142 The Balance
SOL : 扩展的欧几里德, ax+by==c x=x0+b/d*t;y=y0-a/d*t;求|x|+|Y|的最小值可以发现:|x0+b/d*t| 单调递增 |y0-a/d*t| 单调递减 因为 a>b,所以就是说函数是凹的,先减小后增大。显然 当y0-a/d*t==0的时候 |x|+|Y| 最小值就在那附近。枚举几个值就能找到。#in原创 2014-05-20 21:31:01 · 619 阅读 · 0 评论