做毛绒玩具在什么网站上找客户,眼科医院网站做竞价带来的询盘量,怎样在手机上做网站,购物网站建设公司基础知识#xff1a; 1.对于任意的axbyc#xff0c; 如果我们知道有一组解x0, y0; 那么 x1 x0kb(bb/gcd(a,b)), y1 y0-ka(aa/gcd(a,b)); 求解ax by c 的过程如下#xff1a; 1.首先我们利用Egcd求出axbyg(g gcd(a,b))的解。 利用此算法我们可以求出三个数g, x, y 2.然后… 基础知识 1.对于任意的axbyc 如果我们知道有一组解x0, y0; 那么 x1 x0kb(bb/gcd(a,b)), y1 y0-ka(aa/gcd(a,b)); 求解ax by c 的过程如下 1.首先我们利用Egcd求出axbyg(g gcd(a,b))的解。 利用此算法我们可以求出三个数g, x, y 2.然后我们判断c%g0? 如果不等于0 那么此方程无整数解。如果等于0的时候那么执行第三步 3.利用g, x, y, c我们求出axbyc的一组解x0 x*c/g, y0 y*c/g; 4.现在我们利用基础知识1可以求解出axbyc的任意一组解。当求最小的满足条件的x的时候我们可以利用模运算 实例 POJ1061 题意是有两只青蛙在赤道上跳 第一只青蛙的起点是x, 每次跳m米 第二只从y开始每次跳n米 赤道长度为l 问两只青蛙最少几步相遇 我们可以列出如下方程xkm ykn mod(l) k(m-n) k1*l y-x 代码如下 #include cstdio
#include cstring
#include algorithm
#include iostreamusing namespace std;
typedef long long LL;void gcd(LL a, LL b, LL d, LL x, LL y)
{if(!b) { da; x1; y0;}else { gcd(b, a%b, d, y, x); y - x*(a/b); }
}int main()
{LL x, y, m, n, l;cinxymnl;LL am-n, bl, cy-x;LL g;gcd(a, b, g, x, y);if(c%g ! 0){coutImpossibleendl;return 0;}LL x0 c/g*x;//x1 x0k*b/gLL bg b/g0?b/g:-b/g;x0 (x0%bgbg)%bg; //这里使用模运算求解最小值coutx0endl;return 0;
} 转载于:https://www.cnblogs.com/xingxing1024/p/5189714.html