1 条题解

  • 0
    @ 2025-10-8 17:03:58
    #include<bits/stdc++.h>
    using namespace std;
    typedef long long LL;
    void exgcd(LL a,LL b,LL &d,LL &x,LL &y)
    {
    	if(b==0) { d=a;x=1;y=0;}
    	else
    	{
    		exgcd(b,a%b,d,y,x);
    		y-=(a/b)*x;
    	}	
    }
    int main()
    {
        LL p1,p2,d1,d2,L;scanf("%lld%lld%lld%lld%lld",&p1,&p2,&d1,&d2,&L); 
        LL A,B,d,x,y,K;
        A=d2-d1;B=L;K=p1-p2;//此处不介意A的正负
        exgcd(A,B,d,x,y);
        if(K % d!=0) printf("Impossible\n");
        else
        {
        	LL db=abs(B/d);
        	x=x*K/d;
    		x=((x%db)+db)%db;
    		printf("%lld\n",x);
        }
        return 0;
    }
    
    • 1

    *【扩展欧几里得:解同余方程】青蛙的约会

    信息

    ID
    3130
    时间
    1000ms
    内存
    128MiB
    难度
    7
    标签
    递交数
    64
    已通过
    13
    上传者