<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      P5656 【模板】二元一次不定方程 (exgcd)

      整理一下關(guān)于 exgcd 的內(nèi)容,都說寫完這道題就會做所有 exgcd 的題了,是不是我不知道,反正今天又做了一遍,記錄一下我的過程,感覺沒有太難。

      題意

      求不定方程 \(ax+by=c\) 的解。

      以下稱正整數(shù)解為 \(x,y\) 都是正整數(shù)的解,其中有一個是非正整數(shù)就不行。

      如果沒有任何整數(shù)解,輸出 -1。

      如果有正整數(shù)解,輸出個數(shù),x_min,y_min,x_max,y_max。

      如果沒有正整數(shù)解,輸出 x 正整數(shù)解的 x_min,y 正整數(shù)解的 y_min。

      接下來分三步進行:求出基本量,處理情況二,處理情況三。

      求出基本量

      先把無解判了:\(c\% gcd(a,b)\ne 0\),裴蜀定理,沒啥好說的。

      之后使用 exgcd 求出一組特殊解 \(x_0\), \(y_0\)

      不定方程的解我們就可以刻畫出來了。

      \(x'=x_0+\frac{b}{gcd(a,b)}\times t\)

      \(y'=y_0-\frac{a}{gcd(a,b)}\times t\)

      根據(jù)我的習(xí)慣,我將稱呼 \(\frac{b}{gcd(a,b)}\)\(lenx\)\(\frac{a}{gcd(a,b)}\)\(leny\),因為這個就像是一塊一塊的長度,方便接下來的推導(dǎo)。

      如果想要知道 \(x,y\) 的極值情況明顯就可以利用 \(t\) 了。

      我們求出來 \(t_{min}\)\(t_{max}\),利用 \(x,y\) 是正整數(shù)解的性質(zhì)列出來兩個式子。

      不難求出來,懶得寫了,注意上下取整問題。

      直接判斷 \(t_{min}\) 是不是大于 \(t_{max}\) 就行,如果是就是情況二。

      情況二&&情況三

      情況二:

      經(jīng)典問題,根據(jù)通解的式子可以得出一個變量的最小非負整數(shù)解,特判一下 0 就行了。

      情況三:

      數(shù)量就是 \(t_{max}-t_{min}+1\),按照通解式子搞就行。

      代碼

      點擊查看代碼
      #include <bits/stdc++.h>
      #define int long long
      using namespace std;
      int Exgcd(int a, int b, int &x, int &y){
      	if(!b){x=1; y=0; return a;}
      	int d=Exgcd(b,a%b,y,x);
      	y-=(a/b)*x; return d;
      }
      int Gcd(int a, int b){
      	if(!b) return a;
      	return Gcd(b,a%b);
      }
      void Solve(int a, int b, int c){
      	int d=Gcd(a,b);
      	if(c%d){cout<<-1<<'\n'; return;}//type 1
      	int x_gcd, y_gcd, x_0, y_0;
      	Exgcd(a,b,x_gcd,y_gcd);
      	x_0=x_gcd*c/d; y_0=y_gcd*c/d;
      	int lenx=b/d, leny=a/d;
      	int t_min, t_max;
      	t_min=ceil((double)1.0*(-x_0+1)/lenx);
      	t_max=floor((double)1.0*(y_0-1)/leny);
      	if(t_min>t_max){//type 3
      		int x_min, y_min;
      		x_min=(x_0%lenx+lenx)%lenx;
      		y_min=(y_0%leny+leny)%leny;
      		if(x_min==0) x_min=lenx;
      		if(y_min==0) y_min=leny;
      		cout<<x_min<<" "<<y_min<<'\n';
      	}else{//type2
      		cout<<t_max-t_min+1<<" ";
      		cout<<x_0+lenx*t_min<<" ";
      		cout<<y_0-leny*t_max<<" ";
      		cout<<x_0+lenx*t_max<<" ";
      		cout<<y_0-leny*t_min<<'\n';
      	}
      	return;
      }
      signed main(){
      	ios::sync_with_stdio(0), cin.tie(0), cout.tie(0);
      	int T; cin>>T; while(T--){
      		int a, b, c;
      		cin>>a>>b>>c;
      		Solve(a,b,c);
      	}
      	return 0;
      }
      
      posted @ 2025-10-29 11:21  BaiBaiShaFeng  閱讀(6)  評論(0)    收藏  舉報
      Sakana Widget右下角定位
      主站蜘蛛池模板: 亚洲熟妇av综合一区二区| 石渠县| 亚洲一级特黄大片在线观看| 国产精品无码av不卡| 亚洲精品不卡无码福利在线观看| 日本在线 | 中文| 国产精品福利中文字幕| 国产对白叫床清晰在线播放| 日本久久久久亚洲中字幕| 午夜高清福利在线观看| 播放灌醉水嫩大学生国内精品| 日本久久一区二区三区高清| 欧美综合人人做人人爱| 欧美成人精品三级在线观看| 国产毛片基地| 国产精品久久亚洲不卡| 亚洲成人av免费一区| 日韩精品不卡一区二区三区| 国产精品一久久香蕉国产线看观看| 亚洲的天堂在线中文字幕| 日韩国产精品无码一区二区三区 | 婷婷久久香蕉五月综合加勒比| 一出一进一爽一粗一大视频| 97久久精品无码一区二区| 国产日韩精品中文字幕| 欧美成人精品| 久久久久久伊人高潮影院| 国产精品美女久久久久久麻豆| 久99久热这里只有精品| 亚洲熟妇自偷自拍另欧美| 蜜芽久久人人超碰爱香蕉| 国产熟女激情一区二区三区| 97在线视频人妻无码| 日韩精品 在线一区二区| AV极品无码专区亚洲AV| 亚洲国模精品一区二区| 天干天干夜天干天天爽| 欧美韩中文精品有码视频在线| 亚洲欧美日韩国产精品专区| 国产熟女丝袜av一二区| 欧美寡妇xxxx黑人猛交|