洛谷1313 計算係數

2021-07-24 03:14:11 字數 1506 閱讀 8711

noip2011 day2 t1

原題位址

題目描述

給定乙個多項式(by+ax)^k,請求出多項式展開後x^n*y^m 項的係數。

輸入輸出格式

輸入格式:

輸入檔名為factor.in。

共一行,包含5 個整數,分別為 a ,b ,k ,n ,m,每兩個整數之間用乙個空格隔開。

輸出格式:

輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對10007 取模後的結果。

輸入輸出樣例

輸入樣例#1:

11 3 1 2

輸出樣例#1:3

說明

【資料範圍】

對於30% 的資料,有 0 ≤k ≤10 ;

對於50% 的資料,有 a = 1,b =1;

對於100%的資料,有 0 ≤k ≤1,000,0≤n, m ≤k ,且n + m = k ,0 ≤a ,b ≤1,000,000。

noip2011提高組day2第1題

對於學過二項式定理的高二高三黨來說,這就是一道送分題。。。如果能順利地打出大組合數取模和快速冪的話。

二項式定理:

tk+1表示(a+b)n展開式的第k+1項,其通式為tk+1=c(n,k)akb(n-k)。然後就可以解決了。直接跑組合數(本蒟蒻用逆元寫的,老實說盧卡斯定理不怎麼會用,用不好了有可能超時),再跑兩個快速冪就出來了,唯一比較坑的地方就是要打好多好多次取模,一不留神就可能出錯,所以要細心。

參考**

#include#include#include#includeusing namespace std;

int jc[1005];

const int mod=10007;

long long power(int x,int y)

long long c(int n,int m)

int main()

{ inta,b,k,n,m;

cin>>a>>b>>k>>n>>m;

longlong p1,p2,p3,p;

jc[1]=1;

for(int i=2;i<=k;i++)

jc[i]=(jc[i-1]*i)%mod;

p1=c(k,min(n,m));

p2=power(a,n);

p3=power(b,m);

p=(p1%mod*p2%mod)%mod*p3%mod;

cout<

洛谷 P1313 計算係數

題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入輸出格式 輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對...

洛谷 P1313 計算係數

題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入輸出格式 輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對...

洛谷 P1313 計算係數

題目描述 給定乙個多項式 by ax k,請求出多項式展開後x n y m 項的係數。輸入格式 輸入檔名為factor.in。共一行,包含5 個整數,分別為 a b k n m,每兩個整數之間用乙個空格隔開。輸出格式 輸出共1 行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對10007 取...