ひょうHOTPO
#pragma GCCの最適化(3、 "Ofast"、 "インライン") の#include <ビット/ STDC ++ H> 使用して名前空間std。 typedefの長い長いLL。 )(メインINT { LL N。 int型T; CIN >> T; (T--)一方 { LLのK。 scanf関数( "%のLLDの%のLLD"、&K、&N); LL = 0をMAXD。 LL、X = N。 MAXD = X。 一方、(X = 1!) { IF(X%2 == 1) { X = X * 3 + 1。 } 他{ X / = 2。 } MAXD = MAX(MAXD、X)。 } printf( "%のLLD%のLLDを\ n"、K、MAXD)。 } 0を返します。 }
鋳造
#pragma GCCの最適化(3、 "Ofast"、 "インライン") の#include <ビット/ STDC ++ H> 使用して名前空間std。 typedefの長い長いLL。 const int型MAXN = 1E7 + 10。 const int型N = 28; int型のP、B、K。 メインINT(){ #ifndefのONLINE_JUDGE freopenは( "1.TXT"、 "R"、STDIN)。 #endifの scanf関数( "%のD"、&P)。 一方、(P - ){ int型のRES = 0。 scanf関数( "%dの%のD"、&K、&B); 文字chを、 // getchar関数(); (!CH = GETCHAR()、CH = '\ n'){一方 (CH> = '0' && CH <= '9')であれば{ RESの=(RES * B)%(B - 1)。 RES =(RES + CH - '0')%(B - 1)。 RES%=(B - 1)。 } // printfの( "***"); } のprintf( "%D%D \ n"、K、RES)。 } 0を返します。 }
ペンカウント
#include <ビット/ STDC ++ H> 名前空間STDを使用して、 typedefの長い長いLL。 インラインint型リード() { LL RES = 0、F = 1。 チャーCH = GETCHAR()。 (!isdigit(CH))、一方 { IF(CH == ' - ') { F = -f。 } CH = GETCHAR()。 } 一方(isdigit(CH)) { RESの=(RES << 3)+(RES << 1)+ CH-'0' 。 CH = GETCHAR()。 } F * RESを返します。 } メインINT(){ LL _ =読み取ります()。 一方、(_--){ LL N、K、B、ANS = 0。 K =読み取る(); N =(読み取り) {(; iは3 <= N / I ++はLL I = 1)のための B =(N - I)/ 2。 = MAX(I、N / 2 - I + 1)。 ANS + =(B - A + 1)* 2。 (I == a)の場合ans--。 (! - I - I = B && Bの== N b)の場合はans--。 } のprintf( "%のLLD%のLLDを\ n"、K、ANS)。 } }
ファールハーバのトライアングル
インポートjava.util.Scanner; インポートがjava.math.BigInteger; パブリッククラスメイン{ パブリック静的無効メイン(文字列[] args){ スキャナCIN =新しいスキャナ(System.in)。 BigIntegerのF [] [] [] =新しいBigIntegerの[410] [410] [3]。 F [0] [1] [0] = BigInteger.ONE。 F [0] [1] [1] = BigInteger.ONE。 {(; iが= 400 <I ++はiは1 = INT)のため のBigInteger MU = BigInteger.ONE。 用(int型J = I + 1、J> = 2; j--){ BigIntegerのII = BigInteger.valueOf(I)。 [ - 1 I] [J - 1] F [I] [j]を[0] F = [0] .multiply(II)を、 BigInteger JJ = BigInteger.valueOf(J)。 [J - 1] - F [I] [j]を[1] F [1 I] = [1] .multiply(JJ)を、 IF(F [I] [J] [1] .compareTo(BigInteger.ZERO)!= 0)、μ= mu.multiply(F [I] [J] [1])。 BigInteger D = F [i]は[J] [0] .gcd(F [I] [J] [1])。 IF(!d.compareTo(BigInteger.ZERO)= 0){ [I] [J] F [0]、F [i]の[j]を= [0] .divide(D)。 F [I] [j]を[1] F [I] [J] [1] .divide(d)を=。 } } のBigInteger ZI = BigInteger.ZERO。 (INT J = 2、J <= I + 1、J ++)のための{ (F [I] [J] [1] .compareTo(BigInteger.ZERO)!= 0)ZI = zi.add(mu.divide(IF 。F [i] [j]は、[1])(F乗算[I] [J] [0])); } のBigInteger D = mu.gcd(ZI)。 MU = mu.divide(D)。 ZI = zi.divide(D)。 IF(mu.compareTo(ZI)== 0){ F [i]が[1] [0] = BigInteger.ZERO。 F [i]を[1] [1] = BigInteger.ZERO。 }他{ IF(mu.compareTo(ZI)> 0){ F [i]が[1] [0] = mu.subtract(ZI)。 F [i]を[1] [1] MUを=。 }他{ F [i]が[1] [0] = zi.subtract(MU).multiply(BigInteger.valueOf(-1))。 F [i]を[1] [1] MUを=。 } } } int型T = cin.nextInt()。 以下のために(INT I = 1; I <= T; iは++){ INT A = cin.nextInt()、B = cin.nextInt()、C = cin.nextInt()。 System.out.print(A + "「); IF(F [B] [C] [0] .compareTo(BigInteger.ZERO)== 0){ するSystem.out.println( "0")。 }そうであれば(F [B] [C] [1] .compareTo(BigInteger.ONE)== 0){ System.out.printlnは(F [B] [C] [0])。 }他のSystem.out.println(F [B] [C] [0] + "/" + F [B] [C] [1])。 } } }
王の浮き沈み
#pragma GCCの最適化(3、 "Ofast"、 "インライン") の#include <ビット/ STDC ++ H> 使用して名前空間std。 typedefの長い長いLL。 const int型MAXN = 1E7 + 10。 const int型N = 28; LLのE [28] = {0,1,2,4,10,32,122,544,2770,15872,101042,707584,5405530,44736512,398721962,3807514624,38783024290,419730685952,4809759350882,58177770225664,740742376475050}。 int型P、D、N。 メインINT(){ //#IFNDEF ONLINE_JUDGE // freopenは( "1.TXT"、 "R"、STDIN)。 //#endifのの のscanf( "%d個"、&P); (P - )、一方{ scanf関数( "%d個の%のD"、&D、&N)。 printf( "%D%LLD \ n"は、D、E [N])。 } 0を返します。 }