关于扩欧,求hack
查看原帖
关于扩欧,求hack
67618
haooo楼主2020/8/15 17:39

标准的的最后一步(即输出):

cout<<(x%b+b)%b;

但此题中这样交也能A:

cout<<(x+b)%b;

总觉得有问题,但同学写的生成数据的一直找不到hack数据。

完整程序:

#include<bits/stdc++.h>
using namespace std;
#define ll long long
int exgcd(ll a,ll b,ll &x,ll &y){
    if(b==0){
        x=1;y=0;
        return a;
    }
    ll d=exgcd(b,a%b,x,y);
    ll z=x;x=y;y=z-y*(a/b);
    return d;
}
int main(){
    ll a,b,x,y;
    cin>>a>>b;
    exgcd(a,b,x,y);
    cout<<(x+b)%b;
    return 0;
}

2020/8/15 17:39
加载中...