問題レポートに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は <;(= 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 }
コードはここで突きます

おすすめ

転載: www.cnblogs.com/THWZF/p/11593780.html