1079年中国の剰余定理(テンプレート)

正の整数Kは、いくつかの素数Kモッドの結果を与え、最小K.必要条件を満たしています 例えば、K%2 = 1、K%3 = 2、K%5 = 3。= 23 Kの対象最低。
 

エントリー

行1:数Nは、後数1及び素数アナログ入力を表します。(2 <= N <= 10 ) 
2 - N + 1行、各Pは、数2及びMであり、スペースで区切られ、Pは素数であり、MはK%Pの結果であります (2 <= P <= 100 、0 <= K <P)

輸出

出力修飾最小のK. すべてのデータは、10未満のK ^ 9ました。

サンプル入力

3 
2 1 
3 2 
5 3

サンプル出力

23個

の基本:

X ≡a1(V M1)X ≡a2(V M2)...... X ≡an(V族MN);

ここで、m1.m2、M3 ......、ペアごとの互いに素の整数をmnを

令M =(M1 * M2 * M3 ... * MN)。

MI = M / MI、TIは、TI式MI *は溶液≡1(MOD MI)の

Xは、溶液は、x =合計1〜N(AI *ミ* TI)は、整数解を有します。

次のように証明します:

、すべての弾性率=Σ代入X(N〜1)* AI *ミチタンもしそうの倍数以外ミ= M / MI MIため、確立された元の方程式

、私はこの方程式に貢献する各aiMitiとして理解することができる他の式には影響しません

1つの#include <ビット/ STDC ++ H>
 2  使用して 名前空間STDを、
3 typedefの長い 長いLL。
4 [ARR llの15 ]、BRR [ 15 ]。
5  INT N。
6  LLのX、Y。
7 LLのGDC(LLのB、LL){ 戻り Bの== 0:GDC(B、%のB)。}
 8  ボイド(LLのB -1,11,11-&X、LL&exgdc Y){
 9      場合(Bの== 0 ){
 10          X = 1、Y = 0返します11     }
 12      exgdc(B、%のB、X、Y)。
13      LLのTEMP = X。
14      X = Y。
15      Y = TEMP-A / B * Y。
16  }
 17  
18  
19  INT メイン(){
 20の      IOS :: sync_with_stdio()。
21      CIN >> N。
22      LLのLCM = 1 23      のためにint型 i = 1 ; iが<= N; iが++ ){
 24          CIN >> ARR [I] >> BRR [I]。
25          * = LCM ARR [I]。
26     }
 27の      LLのRES = 0 28      のためにint型 i = 1 ; iが<= N iが++ ){
 29          exgdc(LCM / ARR [I]、ARR [i]は、X、Y)。
30          X =(X + ARR [I])%(ARR [I])。
31          のRES =(RES + BRR [I] * X * LCM / ARR [I])。
32      }
 33      COUT << RESの%のLCM << ENDL。
34      リターン 0 35 }
コードの表示

 

おすすめ

転載: www.cnblogs.com/qq-1585047819/p/11521372.html