日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

数论:扩展欧几里德(洛谷P1516 青蛙的约会)

發(fā)布時間:2023/12/3 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数论:扩展欧几里德(洛谷P1516 青蛙的约会) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

歐幾里德

基本思想:gcd(q,r)=gcd(r,q%r);
證明,設(shè)q、r的最大公因數(shù)為a,則q=xa,r=ya,xy互質(zhì)
不妨設(shè)x>y(顯然如果小于會在一次gcd運算后交換)
則q%r=(x%y)*a
顯然,其與r的最大公因數(shù)仍是a
時間復(fù)雜度:接近于log

代碼

ll gcd(ll q,ll r){if(r==0){return q;}return gcd(r,q%r); }

擴展歐幾里德

對于q,r 及其最大公因數(shù)g,不定方程:
aq+br=g
必定存在無限多對整數(shù)a、b的解(證明會在下面給出)
拓展歐幾里德就是用于求出這個a與b的一對特殊值
對于遞歸轉(zhuǎn)移,有如下方程:

gcd(q,r):a*q+b*r=g; gcd(r,q%r):A*r+B*(q%r)=g;

任務(wù)是得到ab與AB之間的轉(zhuǎn)移
又因為:

q%r=q-r*(q/r);

方程聯(lián)立,可解得:

(B-a)*q+(A-b-(x/y)*B)*r=0;

各系數(shù)為0;
即:

a=B; b=A-(q/r)*B;

問題得到解決

代碼

ll gcd(ll q,ll r){//a和b全局或傳參皆可if(r==0){b=0;a=1;return q;}ll c=gcd(r,q%r);trans=a;//中轉(zhuǎn)一下a=b;b=trans-(q/r)*b;return c; }

回到前面的問題:

對于q,r 及其最大公因數(shù)g,不定方程:
aq+br=g
必定存在無限多對整數(shù)a、b的解

可以通過上面這個代碼發(fā)現(xiàn):
不斷輾轉(zhuǎn)取模,q、r單調(diào)遞減
一定會達到邊界值(r==0)
那么就可以往回遞歸a與b
其值是存在且確定的

應(yīng)用:求解不定方程

對于關(guān)于整數(shù)a、b的不定方程:
am+bn=w

若mn的最大公因數(shù)為g
則m和n可以分別寫為k1g和k2g(k1k2均為整數(shù))
那么原方程可以改寫為:
ak1g+bk2g=w

顯然,當w不能整除g時,方程無解(反證易得)

當w整除g時:
w可以寫為cg,c為整數(shù)
由拓展歐幾米德可知:
ak1g+bk2g=g 恒有解
兩邊同乘c:
cak1g+cbk2g=cg
即:
cak1g+cbk2g=w
顯然這里的ca與cb就是一對整數(shù)解

綜上,我們得出結(jié)論:

對于關(guān)于整數(shù)a、b的不定方程:
am+bn=w
當且僅當w整除g時,方程有解
其中一對特殊解為ca,cb(字母定義同上)

從特殊解得到普遍解

那么如何從特殊解得到普遍解呢?
設(shè)當前已知的解為x0,y0,另一對解為x,y
那么:

x0m+y0n=w; xm+yn=w

兩式相減:
(x0-x)m+(y0-y)n=0;
設(shè)k1=x0-x,k2=y0-y;
那么k1,k2就是兩個解上下浮動的間隔
再移項得到
k1m=-k2n
左邊是m的倍數(shù)
右邊是n的倍數(shù)
那么不難看出,等號兩邊是m和n的公倍數(shù)
那么取m與n的最小公倍數(shù)時,k1k2取到絕對值最小的值
最小公倍數(shù)可以寫成mn/gcd(m,n)
即:
k1(min)*m=mn/gcd(m,n)
即:k1(min)=n/gcd(m,n)
同理k2(min)=m/gcd(m,n)

綜上
若一組特殊解為x0,y0
則所有解的集合是:

x0+tn/gcd(m,n)
y0+tm/gcd(m,n)

t為同一個整數(shù);
注意x0對應(yīng)的是m,換句話說就是交叉對應(yīng)

代碼

(這題是洛谷P1516 青蛙的約會的題解)

#include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <map> #include <vector> #include <queue> #include <stack> #include <deque> #include <set> #include <string> #include <iostream> #include <climits> #define ll long long using namespace std; const int M = 500050; const int N = 500050; const ll mod = 1000000007; ll x,y,m,n,l; ll a,b,g,p,w,trans; ll gcd(ll q,ll r){if(r==0){b=0;a=1;return q;}ll c=gcd(r,q%r);trans=a;a=b;b=trans-(q/r)*b;return c; } int main() {scanf("%lld%lld%lld%lld%lld",&x,&y,&m,&n,&l);p=n-m;w=x-y;if(p<0){w=-w;p=-p;}g=gcd(p,l);if(w%g){printf("Impossible");return 0;} // printf("a=%lld g*l=%lld p=%lld l=%lld g=%lld b=%lld w=%lld\n",a,g*l,p,l,g,b,w);while(a<0) a+=(g*l);ll k=w/g;a*=k;if(a<0) a+=(((-a)/(l/g))+1)*(l/g);//尋找到最小正整數(shù)解a%=(l/g);printf("%lld",a);return 0; } /* */

thanks for reading!

特別鳴謝:lq、qyt、wyx三位大佬對證明過程中問題的指出awa

總結(jié)

以上是生活随笔為你收集整理的数论:扩展欧几里德(洛谷P1516 青蛙的约会)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色婷婷基地 | 美女色av | 波多野结衣在线免费观看视频 | 国产乱码77777777 | 亚洲综合涩 | 中国女人内谢69xxxxⅹ视频 | 国产原创91| 欧美精品二区三区四区免费看视频 | 亚洲熟妇无码一区二区三区 | 大陆日韩欧美 | 亚洲毛片在线观看 | 国产日韩欧美自拍 | 日韩一级片视频 | 99成人| 超碰97成人 | av的天堂 | 国产自精品 | 久久国语 | 久久人妻免费视频 | 免费在线黄色片 | 国产在线激情视频 | 亚洲精品色 | 欧美大片免费观看网址 | 久久久久99精品 | 国产欧美一区二区三区在线看蜜臀 | 国产无精乱码一区二区三区 | 国产在线毛片 | 中文字幕一区二区三区人妻不卡 | 久久综合中文字幕 | 国产黄色特级片 | 一级片免费网址 | 久久国产精品系列 | 亚洲视频手机在线 | 麻豆精品国产传媒av | 极品少妇一区 | 永久精品网站 | 四虎永久免费在线观看 | 天天干天天日夜夜操 | 亚洲高清在线播放 | 夜夜撸av | www.久热| 囯产精品久久久久久 | 超碰在线香蕉 | 亚洲国产第一区 | 精品国产一区一区二区三亚瑟 | 销魂美女一区二区 | 69xav| 久久精品一区二区国产 | 日本少妇性高潮 | 夜夜躁狠狠躁日日躁av | 亚洲精品va | 国产富婆一级全黄大片 | 亚洲黄片一区二区三区 | 中文亚洲av片不卡在线观看 | 在线视频 亚洲 | 欧美成人一区二区三区 | 美女超碰 | 91成人品| 国产8区| 帮我拍拍漫画全集免费观看 | 91麻豆网| 在线播放一区 | 性生交大片免费看狂欲 | 国产精品久久欧美久久一区 | 精品人妻一区二区三区日产乱码卜 | 成人特级片 | 国产人人干 | 素人一区 | 欧洲av无码放荡人妇网站 | 99精品人妻少妇一区二区 | 国产在线观看h | 久久午夜无码鲁丝片 | 亚洲欧美第一 | 免费美女av | 国产chinesehd精品露脸 | 人妻互换一区二区三区四区五区 | 午夜激情一区二区 | 国产99在线视频 | 日本视频免费观看 | 一本色道综合久久欧美日韩精品 | 国产女主播在线 | 艳妇乳肉豪妇荡乳av无码福利 | 在线免费观看污视频 | av无限看 | 色老汉av一区二区三区 | www.av麻豆 | 四虎影视网 | 久久久久久久久久久福利 | 免费看特级毛片 | 最新国产黄色网址 | 久久成人在线观看 | 催眠美妇肉奴系统 | 中文字幕35页 | 91插插插视频 | 特黄av| 免费又黄又爽又色的视频 | 午夜窝窝 | 日韩在线视频一区 | 伊人久久大香线蕉av色婷婷色 |