拓展欧几里德
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 · 825 阅读 · 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 · 833 阅读 · 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 · 606 阅读 · 0 评论