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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

P3868 [TJOI2009]猜数字(CRT板子)

發(fā)布時間:2025/7/25 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 P3868 [TJOI2009]猜数字(CRT板子) 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

題目描述

現(xiàn)有兩組數(shù)字,每組k個,第一組中的數(shù)字分別為:a1,a2,...,ak表示,第二組中的數(shù)字分別用b1,b2,...,bk表示。其中第二組中的數(shù)字是兩兩互素的。求最小的非負整數(shù)n,滿足對于任意的i,n - ai能被bi整除。

輸入輸出格式

輸入格式:

?

輸入數(shù)據(jù)的第一行是一個整數(shù)k,(1 ≤ k ≤ 10)。接下來有兩行,第一行是:a1,a2,...,ak,第二行是b1,b2,...,bk

?

輸出格式:

?

輸出所求的整數(shù)n。

?

輸入輸出樣例

輸入樣例#1:?復制 3 1 2 3 2 3 5 輸出樣例#1:?復制 23

說明

所有數(shù)據(jù)中,第一組數(shù)字的絕對值不超過109(可能為負數(shù)),第二組數(shù)字均為不超過6000的正整數(shù),且第二組里所有數(shù)的乘積不超過1018

每個測試點時限1秒

注意:對于C/C++語言,對64位整型數(shù)應聲明為long long,如使用scanf, printf函數(shù)(以及fscanf, fprintf等),應采用%lld標識符。


?


?


?


?

?

?

?

?

像第一對a和b??? , 首先其他a的最小公倍數(shù)才能滿足其他的式子,求在這個最小公倍數(shù)的逆元在成a,有滿足了自己成立,這里就用到了一個小技巧。

這樣滿足了所有的式子成立,在%lcm扔成立

?

?

?

?

1 #include"bits/stdc++.h" 2 using namespace std; 3 typedef long long ll; 4 5 ll k,a[11],b[11],s=1,ans=0; 6 7 8 void exgcd(ll a,ll b,ll &x, ll &y) 9 { 10 if (!b){ 11 x=1,y=0 ;return ; 12 } 13 14 exgcd(b,a%b,x,y); ll t; 15 t=x; 16 x=y; 17 y=t-(a/b)*y; 18 } 19 20 inline ll mul(ll a,ll b) 21 { 22 ll r=0; 23 while (b) 24 { 25 if (b&1)r+=a%=s; 26 b>>=1; 27 a+=a%=s; 28 }return r; 29 } 30 int main() 31 { 32 cin>>k; 33 for (int i=1;i<=k;i++)cin>>a[i]; 34 for (int i=1;i<=k;i++)cin>>b[i],s*=b[i]; 35 for(int i=1;i<=k;i++) 36 { 37 ll x,y; 38 exgcd(s/b[i],b[i],x,y); 39 x=(x%b[i]+b[i])%b[i];(1) 40 // cout<<i<<" "<<x<<endl; 41 ans+=mul(s/b[i]*x,((a[i]%b[i]+b[i])%b[i]));//快速乘,否則爆long long(2)
// 一和二式都取模意義下的最小正整數(shù)
42 ans%=s; 43 } 44 cout<<ans; 45 }

?

?

?

?


?


?

轉(zhuǎn)載于:https://www.cnblogs.com/zhangbuang/p/10338369.html

總結(jié)

以上是生活随笔為你收集整理的P3868 [TJOI2009]猜数字(CRT板子)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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