去菲律宾做it网站开发,行业协会网站建设方案书,可以做3d电影网站,网站升级建设招标公告#正题 链接#xff1a; https://www.luogu.org/record/show?rid7935281 ##大意 两只青蛙往相同方向绕圈#xff0c;A蛙一次跳n米在x出发#xff0c;B蛙一次跳m米在y出发#xff0c;一圈长度L。求跳多少次后两只青蛙在同一个地方。 ##解题思路 首先我们假设要跳kkk次#…#正题 链接 https://www.luogu.org/record/show?rid7935281 ##大意 两只青蛙往相同方向绕圈A蛙一次跳n米在x出发B蛙一次跳m米在y出发一圈长度L。求跳多少次后两只青蛙在同一个地方。 ##解题思路 首先我们假设要跳kkk次那么推出公式 ###xnk≡ymk(modl)xnk≡ymk(mod\ \ l)xnk≡ymk(mod l) ###xnk−y−mk≡0(modl)xnk-y-mk≡0(mod\ \ l)xnk−y−mk≡0(mod l) ###(x−y)k(n−m)≡0(modl)(x-y)k(n-m)≡0(mod\ \ l)(x−y)k(n−m)≡0(mod l) 我们定义 A(x−y)A(x-y)A(x−y) B(n−m)B(n-m)B(n−m) 解除同余设置未知数x,k ###AxBklAxBklAxBkl ###xB−klAxB-klAxB−klA 然后让y−ky-ky−k ###xBylAxBylAxBylA 然后是不是有点眼熟之后解就好了 ##代码
#includecstdio
#includealgorithm
#define ll long long
using namespace std;
ll x,y,n,m,l,A,B,d;
ll gcd(ll a,ll b)
{if (b0){x1;y0;//一组特殊解return a;}dgcd(b,a%b);//求gcdint kx;xy;yk-a/b*y;return d;
}
int main()
{scanf(%d%d%d%d%d,x,y,n,m,l);Bx-y;Am-n;if (A0){A-A;B-B;}//处理y-k的情况dgcd(A,l);ll gl/d;if (B%d) printf(Impossible);else printf(%d,((x*(B/d))%gg)%g);//求最小一组解
}