タイトル説明
多項式所与Kは^(+ AXによって)多項式展開要求した後、^ X ^ NY m個の項の係数を。
入力形式
含む総ライン、5つの5それぞれ整数、、、B、K、N、 mは二つの整数の各々の間の空間によって分離します。
出力フォーマット
1行のうち、必要な係数を表す整数が含まれ、この係数は、出力の大きいかもしれ10007 モジュロの結果。
溶液:二項係数X ^ NY ^ mは、C [K] [N] * A ^ N * B ^ M、そう+クイックパワー組合せの数。
1の#include <cstdioを> 2の#include <iostreamの> 3の#include <CStringの> 4の#include <アルゴリズム> 5 の#define MAXN 1010年 6 の#define MOD 10007 7 8 使用して 名前空間STD。 9 10 int型A、B、K、N、M。 11個の 長い 長いC [MAXN] [MAXN]。 12 13インラインINT quick_pow(int型のx、int型のY) 14 { 15 場合(Yの== 1)を返す X%モッド; 16 INT T = quick_pow(X、Y / 2 )。 17 であれば(Yの%2 == 0)を返す T%MOD * T%MOD。 18 他に 返すのx%のmod *トン%モッズ*トン%のmod。 19 } 20 21 のint main()の 22 { 23 のscanf(" %D%D%D%D%D "、&A、&B&K、&N、&M)。 24個の C [ 1 ] [ 0 ] = 1。C [ 1 ] [ 1 ] = 1 。 25 ため(登録をint = I 2 ; iは= K <; ++ I) 26 { 27 C [i]が[ 0 ] =のC [i]は[I] = 1 。 28 のために(登録INT J = 1、J <I; ++ j)の 29 C [i]は[J] =(C [I- 1 ] [J] + C [I- 1 ] [J- 1 ])%モッド; 30 } 31 のprintf(" %dの"、(quick_pow(N)* quick_pow(B、M)* C [K] [N])%のMOD)。 32 リターン 0 。 33 }