BZOJ 1951 SDOI2010古代豚の文化

数論の寄せ集めでは、塗りつぶしに代わってピットを残して、最初のコードを配置しました:

/ * ************************************************ ************* 
    問題:1951 
    ユーザー:JBLee 
    言語:C ++ 
    結果:受理
    時間:152ミリ秒の
    メモリー:2856キロバイト
***************** ********************************************** * / 
 
の#include <ビット/ STDC ++ H>
 に#define INT長い長い
 使用して 名前空間STDを、
const  int型 MAXN = 1E5 + 7 const  int型のmod = 999911658 ;
int型N、G。
int型の合計。
int型の M [ 5 ] = { 023467935617 }。
INT JC [MAXN]。
INT X、Y。
INT 中国[MAXN]。
INT KSM(int型のx、int型のn、int型のMO){
     int型の ベース = 1 一方、(N){
         場合(N - 1基地 = ベース * X%のMO。
        X = X * X%のMO; 
        N >> = 1 
    } 
    戻り 塩基; 
}
INT exgcd(INT A、INT&X、int型 B、INTY){
     場合(!{b)は
        、X = 1 ; Yは= 0 ;
        返します
    } 
    int型 GCD = exgcd(B、X%のB、Y)。
    INTの TMP = X; X = Y; Y = tmp-(/ B)* Y。
    リターンGCD。
} 
INT INV(INT A、INTのMO){ 
    exgcd(X、MO、Y)。
    リターン(のx%のMO + MO)%のMO。
} 
のボイドの仕事(int型 P){
    JC [ 0 ] = 1、JCは、[ 1 ] = 1 int型 iは= 2 JC [I] = JC [1-; I <= P iが++)1 ] * I%のP。
} 
int型櫛(整数 nは、整数 M、INT P){
     場合(M> N)戻り 0 ;
    戻り JC [N] * INV(JC [nm]で、P)%のP *はINV(JC [m]を、P)%のP。
} 
INTルーカス(整数 nは、整数 M、INT P){
     場合(!m)のリターン 1  戻り櫛(N%のP、Mの%のP、P)*ルーカス(N / P、M / P、P)%のP。
} 
INT(解決INT P){ 
    作業(p)を。
    int型 ANS = 0 ;
    以下のためにint型 i = 1 ; iは++; iは<= N * {)
         であれば(N%I == 0 ){ 
            ANS =(ANS +ルーカス(N、I、P))%のP。
            もし(!N / I = I)ANS =(ANS +ルーカス(N、N / I、P))%のP。
        } 
    } 
    戻りANS。
} 
int型china_mod(){
     INT I = 1;私は= < 4 ; iは++)中国[I] = 解く(M [I])。
    INT LCM = 1、ANS = 0 、MI。
    以下のためにint型 i = 1 ; iは= < 4 ; I ++)LCM * = Mを[I]。
    以下のためにint型 i = 1 ; iが<= 4 ; I ++ ){ 
        MI = LCM / M [i]は、
        exgcd(MI、X、M [i]は、Y)。
        ANS =((ANS + MI * X *中国[I])%のLCM + LCM)%のLCM。
    } 
    戻りANS。
} 
メイン署名された(){ 
    scanf関数(" %のLLDの%のLLD "、&​​N、&G)。
    もし(グラム%(MOD + 1)== 0 ){ 
        のprintf(" 0 \ n " );
        リターン 0 ; 
    } 
    のprintf(" %LLDする\ n "、KSM(G、china_mod()、MOD + 1 ))。
    リターン 0 ; 
}
コードの表示

 

おすすめ

転載: www.cnblogs.com/LJB666/p/11779219.html