1079 中國剩餘定理

2021-08-19 09:56:50 字數 1017 閱讀 4259

1079 中國剩餘定理

基準時間限制:1 秒 空間限制:131072 kb 分值: 0 

難度:基礎題

乙個正整數k,給出k mod 一些質數的結果,求符合條件的最小的k。例如,k % 2 = 1, k % 3 = 2, k % 5 = 3。符合條件的最小的k = 23。

input

第1行:1個數n表示後面輸入的質數及模的數量。(2 <= n <= 10)

第2 - n + 1行,每行2個數p和m,中間用空格分隔,p是質數,m是k % p的結果。(2 <= p <= 100, 0 <= k output

輸出符合條件的最小的k。資料中所有k均小於10^9。

input示例

3

2 13 2

5 3

output示例

23
思路:我們先說一下模擬.首先我們知道如果x%a=m的話, x=k*a+m.

對於 x%a1=m1, 很顯然x(min)=m, 如果再加一組條件 x%a2=m2, 若當前x(min)不滿足條件2的話, 我們找下乙個(我們可以想象滿足條件1的資料公升序排列)滿足條件1的資料,即a1+m,再判斷其是否滿足條件2, 很顯然我們只要地推下去就能找到同時滿足條件1, 2的最小資料; 如果再加乙個條件 x%a3=m3呢? 前面我們已經招到了滿足條件1, 2的最小資料

x(min), 若其不滿足條件3話, 我們找下乙個滿足條件1, 2的資料, 即x(min)+lcm(a1, a2)(此題中ai與aj互質,所以直接相乘就好啦,並且由這裡我們不難看出最壞情況下即每次加2時其時間複雜度為o(x)), 再判斷其是否滿足條件3, 最終我們可以招到同時滿足三個條件的最小數;

那麼,很明顯對於要滿足n個這樣的條件的答案我們也可以用這個方法求到啦~

**:

#includeusing namespace std;

struct node

s[15];

int main()

cout<

return 0;

}

1079 中國剩餘定理

乙個正整數k,給出k mod 一些質數的結果,求符合條件的最小的k。例如,k 2 1,k 3 2,k 5 3。符合條件的最小的k 23。輸入第1行 1個數n表示後面輸入的質數及模的數量。2 n 10 第2 n 1行,每行2個數p和m,中間用空格分隔,p是質數,m是k p的結果。2 p 100,0 k...

51nod 1079 中國剩餘定理

1079 中國剩餘定理 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 收藏 關注 乙個正整數k,給出k mod 一些質數的結果,求符合條件的最小的k。例如,k 2 1,k 3 2,k 5 3。符合條件的最小的k 23。input 第1行 1個數n表示後面輸入的質數及模的...

51nod 1079 中國剩餘定理

1079 中國剩餘定理 基準時間限制 1 秒 空間限制 131072 kb 分值 0 難度 基礎題 乙個正整數k,給出k mod 一些質數的結果,求符合條件的最小的k。例如,k 2 1,k 3 2,k 5 3。符合條件的最小的k 23。input 第1行 1個數n表示後面輸入的質數及模的數量。2 n...