羅バレーP1313 [NOIP2011】演算係数

タイトル説明

多項式所与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 ] = 1C [ 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 }

 

 

 

おすすめ

転載: www.cnblogs.com/Hoyoak/p/11595550.html