문제 보고서에 Luogu P3868에 맞춰 솔루션

주제 포털

[제목] 효과

[분석] 아이디어

QwQ을 통곡 중국 잉여 정리 보드 제목입니다

중간은 $ \ _ int128의 $를 사용하는 간단한 $ 긴 \ 긴 $를 날려 버릴 것입니다. 나는 손을 타고, $ T $ QAQ도 변경하는 데 시간이 오래의 결과를 연습 거북이 속도를했다.

[] 코드 구현

1 #INCLUDE <cstdio>
 2 #INCLUDE <iostream>
 3 #INCLUDE <CString을>
 4 #INCLUDE <알고리즘>
 5 #INCLUDE <cmath>
 6 #INCLUDE <큐>
 7  #DEFINE의 g () getchar가 ()
 8  #DEFINE의 RG 레지스터
 9  #DEFINE의 이동 (I는은 b)에 대한 (RG의 INT 난 =; 나는 <= B를 단계; 내가 ++)
 10  #DEFINE 백 (I, a가, b) (RG의 인터넷 용 난 =; I> = B; 난 -)
 11  #DEFINE의 DB 이중
 12  #DEFINE이 줄게 긴 길이
 13  #DEFINE IL 인라인
 14  #DEFINE PF printf의
 15  #DEFINEMEM (a, b)가 memset (A, B를 sizeof (a))
 (16)  를 사용  스페이스 성병;
17  INT의 FR () {
 18      INT w = 0 , Q = 1 ;
19       CH = g ();
20      동안 (CH2 < ' 0 ' || CH> ' 9 ' ) {
 21 일          경우 (CH2 == ' - ' ) Q = - 1 ;
22          CH = g ();
23      }
 24      동안 (CH2> = ' 0 ' && CH <=' 9 ' ) << w (w = 1 ) + (w << 3 ) + CH- ' 0 ' , CH = g ();
25       * w의 Q;
26  }
 27  INT의 N, A [ 12 ], B [ 12 ];
28 LL의 B = 1 , ANS, X, Y;
29  IL LL MUL (LL의 X, Y의 LL) {
 30      LL 같이 = 0 ;
31 일      동안 (Y) {
 32          의 경우 (y는 1 )  = ( 같이 + X) %의 B;
(33)         X = (X + X) %의 B, Y = >> 1 ;
34      }
 35       ( 같이 + B) %의 B;
36  }
 37 IL 공극 exgcd (LL 단, LL의 BB, LL 및 X, LL Y) {
 38      만약 {X = (BB!) 1 ; Y가 = 0 ; 반환 }
 39      exgcd (BB, AA %의 BB, X, Y)를;
40      LL의 Z = X, X = Y, Y = ZY * (AA / BB);
41      ;
42  }
 43  INT 의 main () {
 44      // freopen을 ( "", "R", 표준 입력);
(45)      //freopen을 ( "", "w", 표준 출력); 
(46)      N =의 FR ();
(47)      이동 (I, 1 , n)은 [I] =의 FR을 ();
48      이동 (I, 1 , n)은 B [I]의 FR = (), B * = B [I];
(49)      이동 (I, 1 , N) {
 50          A [I] = (A [i]를 %의 B [I] + B [I]) %의 B [I];
51          LL BB = B / B의 [I];
52          exgcd (BB (LL) B [i]는, X, Y);
53          X = (X %의 B를 [I] + B [I]) %의 B [I];
54          의 ANS = (ANS + MUL (BB, MUL (X, A [I])) + B) %의 B;
55      }
 56      PF ( " % LLD \ 없음 " , ANS);
57      반환  0 ;
58 }
코드는 여기 찌를

추천

출처www.cnblogs.com/THWZF/p/11593780.html