https://codeforces.com/contest/1228/problem/ A
書式#include <iostreamの> の#include <cstdioを> std名前空間を使用しました。 INT PD(INT X){ [10] = {} INT。 一方、(X){ IF([X%10])戻り0; [Xの10%] ++; X / = 10。 } 1を返します。 } int型のmain(){ int型のL、R。scanf関数( "%dの%のD"、&L&R)。 (iはLを= int型; I <= R; iが++)は { IF(PD(I)){ のprintf( "%d個の\ n"、i)を、0を返します。 } } のprintf( " - 1つの\ n"); 0を返します。 }
/ *
入力
121 130
出力
123
入力
98766 100000
出力
-1
* /
https://codeforces.com/contest/1228/problem/ B
// このような質問シミュレーションの意味として、問題の解決策は、計算(電源なしでCNT少し速いが行います)グリッド2 ^ CNTの残りの部分に記入する必要はない // しかし、出力cntが0 1時間で判断する // そこ条件が競合を示す場合には出力はありえない0 // のヒントまたは動作条件が競合が大きな値3であろう時間とすることができる の#include <ビット/ STDC ++ H.> 使用して名前空間はstd; // cf589div2b用の#define _for以下のために(I、Aは、B();私は<(B)I ++はI =(A)INT) の#define)Iは、=(Bを<; _repが(私は、Aは、B)は(INT I =(A)。 ++ I) の#define LLロングロング CONST LL + 1E9 = MOD 7。; int型の L、R&LT、CNT = 0 ; int型のmain(){ // ios_base :: sync_with_stdio(0)、cin.tie(0)、cout.tie(0 ); scanf関数( " %dの%のD "、&L&R)。 ベクター <ベクトル< 整数 >> F(L + 5、ベクター< INT >(R + 5、0 )); _rep(I、1 、L){ int型 K。scanf関数(" %のD "、&K)。 _rep(J、1 F、K)[I] [J] | = 1 。 もし(K + 1 <= r)とF [i]は[K + 1 ] | = 2 。 } _rep(I、1 、R){ int型 K。scanf関数("%のD "、&K); _rep(J、1 [j] [i]はF、K)| = 1 ; もし(K + 1 <= L)F [K + 1 ] [I] | = 2 ; } LL ANS = 1 ; _rep(I、1、L)_rep(j、1、r)は なら ANS * =(F [I] [J]!)2、ANS%= MOD; _rep(I、1、L)_rep( J、1、R) であれば(F [I] [J] == 3)ANS * = 0 ; //もしCNT ++([I] [J] && i>は= C [i]は&& J> = D [j]がF!)。 // のprintf( "CNT =%d個の\ n"、CNT)。 printf(" %LLDする\ n " 、ANS)。 リターン 0 ; } / * 3 4 0 3 1 0 2 3 0 出力 2 1 1 0 1 出力 0 19 16 16 16 16 16 15 15 0 5 0 4 9 9 1 4 4 0 8 16 12 6 12 19 15 8 6 19 19 14 6 9 16 10 11 15 4 出力2 ^ 47%MOD = 487370169 797922655 == 2 ^ 51%MOD * /
https://codeforces.com/contest/1228/problem/C
それは(X、1)* ... * F(X、N)fを見ることができる方程式の導出は、素因数P1 xの結果である* ... * PK
1 * ... * N X削除応答モードを残り素因数の非因子は、1E9 + 7であるが、実際の操作は、比較的煩雑です
導出(マジック)の一連の製品が得られる結果は、(i 1 ...... k)のPI ^(N / PI)に等しいです。
!×2のN乗をx = 0で除算することができる。一方、(N> 0){N / = 2、X + = N;}数学のxから計算することができ、興味深い(セクション4.4階乗特定チャプタ数論関連因子由来)
以下のように、同様に探している他の素因数指数
/ * 入力 10 2 出力 2 入力 20190929 1605 出力 363165664 入力 947 987654321987654321 出力 593574252 * / //ベクトル<ベクトル<整数>> F(L + 5、ベクター<整数>(R + 5、0)); #include <ビット/ STDC ++ H> 名前空間STDを使用して、 #defineっ長い長い CONST LL MOD =(INT)1E9 + 7。 LLのpowmod(LLのX、LL A){ IF(== 0)リターン1。 IF(A&1)戻りX * powmod(X、1)%のMOD。 (X * X%のMOD / 2)%MODをpowmodを返します。 } int型のmain(){ ios_base :: sync_with_stdio(0)、cin.tie(0)、cout.tie(0)。 LL X、N。 CIN >> X >> nであり; セット<LL> 用(INT D = 2であり、D *、D <= X; D ++) (X%dの== 0)、一方 dv.insert(D)、X / D =。 IF(X> 1)dv.insert(X)。 LL ANS = 1。 用(LLのD:DV){ LL G = 0、R = N。 (R> 0)R / = D、G + = R一方、 ANS * = powmod(D、G)。ANS%= MOD。 } 戻りCOUT <<(INT)ANS << 'の\ n'は、0。 }