[제목] 효과
[분석] 아이디어
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 }