[タイトル]効果
[解析]アイデア
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は <;(= BをI ++は(I、B)iがRG iは= INT)に行く 10 の#defineバック(I、B)(RG iは= int型のために、I = B>。 i--) 11 の#defineダブルDB 12 の#defineは長い長いっ 13 の#define ILインライン 14 の#define PFのprintf 15 の#defineMEM(A、B)のmemset(A、B、はsizeof(A)) 16 使用 名前空間STDを、 17 int型のFR(){ 18 INT W = 0、Q = 1 。 19 CHAR CH = G(); 20 一方(CH < ' 0 ' || CH> ' 9 ' ){ 21 であれば(CH == ' - ')、Q = - 1 。 22 CH = G(); 23 } 24 ながら、(CH> = ' 0 ' && CH <=' 9 ')w <<(= W 1)+(W << 3)+ CH- ' 0 '、CH = G(); 25 リターン * wのQ; 26 } 27 int型 N、[ 12 ]、B [ 12 ]。 28のLL B = 1 、ANS、X、Y。 29 、IL LL MUL(LLのX、LLのY){ 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のAA、BB -1,11,11-&X、LL&Y){ 38 であれば {X =(BB!)1 ; Yは= 0 ; 返す;} 39 exgcd(BB、AA%のB-B、X、Y)。 40 LLのZ = X; X = Y; Y = Z-Y *(AA / BB)。 41 リターン; 42 } 43 INT メイン(){ 44 // freopenは( ""、 "R"、STDIN)。 45 //freopenは( ""、 "W"、STDOUT)。 46 N = FR()。 47 ゴー(I、1、N)[I] =のFR()。 48 ゴー(I、1、n)がB [I] = frの()、B * = B [i]は、 49 ゴー(I、1 、N){ 50 [I] =([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、[I]))+ B)%のB; 55 } 56 PF(" %LLDする\ n " 、ANS)。 57 リターン 0 ; 58 }