【NOIP】提高组2012 同余方程
生活随笔
收集整理的這篇文章主要介紹了
【NOIP】提高组2012 同余方程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
【算法】擴展歐幾里德算法
【題解】學完擴歐就可以隨便水了。。。
轉化為不定方程ax-by=1。
因為1且題目保證有解,所以方程有唯一解。
紫書曰:同余方程的一個解其實指的是一個同余等價類。
所以滿足x≡x'(mod b)的其他x'也是方程的解。
題目求最小正整數解,因此ans=x%b。
#include<cstdio> #define ll long long void gcd(ll a,ll b,ll& g,ll& x,ll& y) {if(!b){g=a;x=1,y=0;}else{gcd(b,a%b,g,y,x);y-=x*(a/b);} } int main() {ll A,B;scanf("%lld %lld",&A,&B);ll G,X,Y;gcd(A,B,G,X,Y);printf("%lld",(X+B)%B);return 0; } View Code?
轉載于:https://www.cnblogs.com/onioncyc/p/6146142.html
總結
以上是生活随笔為你收集整理的【NOIP】提高组2012 同余方程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DNS设定(二)
- 下一篇: [翻译]Triggerless desi