bzoj1477: 青蛙的约会

Posted akcqhzdy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了bzoj1477: 青蛙的约会相关的知识,希望对你有一定的参考价值。

exgcd的题。(给我留下巨大心理阴影的gcd啊,你又断了我的连A纪录。。)

就是推柿子

(av-bv)*x-(L*y+(bp-ap+L)%L)=0

(av-bv)*x-L*y=(bp-ap+L)%L

然后就gcd。

有个神奇的问题,B不能是负的?我把B=-L改成L就过了?

#include<cstdio>
#include<iostream>
#include<cstring>
#include<cstdlib>
#include<algorithm>
#include<cmath>
using namespace std;
typedef long long LL;

LL exgcd(LL a,LL b,LL &x,LL &y)
{
    if(a==0)
    {
        x=0;y=1;
        return b;
    }
    else
    {
        LL tx,ty;
        LL d=exgcd(b%a,a,tx,ty);
        x=ty-b/a*tx;
        y=tx;
        return d;
    }
}

int main()
{
    LL ap,bp,av,bv,L;
    scanf("%lld%lld%lld%lld%lld",&ap,&bp,&av,&bv,&L);
    if(av<bv){swap(ap,bp);swap(av,bv);}
    
    LL A=av-bv;
    LL B=L;
    LL K=(bp-ap+L)%L;
    
    LL x,y;
    LL d=exgcd(A,B,x,y);
    
    if(K%d!=0)printf("Impossible\n");
    else 
    {
        LL X=x*(K/d);
        X=(X%(B/d)+B/d)%(B/d);
        printf("%lld\n",X);
    }
    return 0;
}

以上是关于bzoj1477: 青蛙的约会的主要内容,如果未能解决你的问题,请参考以下文章

bzoj1477 青蛙的约会

BZOJ1477: 青蛙的约会

bzoj1477: 青蛙的约会

bzoj1477: 青蛙的约会(exgcd)

bzoj 1477: 青蛙的约会exgcd

JZOI2002BZOJ1477P1371青蛙的约会