《牛客2021年儿童节比赛D》
Posted levill
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了《牛客2021年儿童节比赛D》相关的知识,希望对你有一定的参考价值。
同余方程没推好。。
#include<bits/stdc++.h> using namespace std; typedef long long LL; typedef pair<int,set<int>> pii; const int N = 1e5 + 5; const int M = 1e5 + 5; const LL Mod = 998244353; #define pi acos(-1) #define INF 1e9 #define dbg(ax) cout << "now this num is " << ax << endl; namespace FASTIO{ inline int read(){ int x = 0,f = 1;char c = getchar(); while(c < \'0\' || c > \'9\'){if(c == \'-\') f = -1;c = getchar();} while(c >= \'0\' && c <= \'9\'){x = (x<<1)+(x<<3)+(c^48);c = getchar();} return x*f; } } using namespace FASTIO; LL exgcd(LL a,LL b,LL &x,LL &y){ if(b == 0) { x = 1,y = 0; return a; } int t = exgcd(b,a%b,y,x); y -= a/b*x; return t; } int n,a,b; int main() { n = read(),a = read(),b = read(); LL gcd = __gcd(a,b); LL p,k; LL ta = exgcd(gcd,n,p,k); if((n - 1) % ta != 0) printf("-1\\n"); else { LL x,y; LL g = exgcd(a,b,x,y); p = p * (n - 1) / ta; x = x * p; y = y * p; if(x < 0) x = x + 1LL * (abs(x / n) + 1) * n; if(y < 0) y = y + 1LL * (abs(y / n) + 1) * n; printf("%lld %lld\\n",x,y); } //system("pause"); return 0; }
以上是关于《牛客2021年儿童节比赛D》的主要内容,如果未能解决你的问题,请参考以下文章
牛客2021年七夕节比赛大部分题解(因数枚举模板线段树dp……)
牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第三场)A.不凡的夫夫(斯特林公式) D.小牛vs小客 E.进击吧!阶乘(大数Java) G.大水题(数学)