NOIP2011 計算係數

2021-07-10 20:51:03 字數 1258 閱讀 8239

1計算係數

給定乙個多項式 (ax + by)k ,請求出多項式展開後 x

n y

m 項的係數。

【輸入】

輸入檔名為 factor.in。

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

【輸出】

輸出檔名為 factor.out。

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

【輸入輸出樣例】

factor.in

factor.out

1 1 3 1 2

【資料範圍】

對於 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。

【思路】

本題考查計算組合公式。可以知道答案就是c[k][m]*a^n*b^m。

有兩種遞迴方式:

一種計算第n行,c[i]=c[i-1]*(k-i+1)/i  但實踐得知這種遞推的方式不能用模運算。

一種計算是把表全部遞推出來 c[k][i]=c[k-1][i]+c[k-1][i-1];這種方法可以用模且時間足夠。

【**】

1 #include2

using

namespace

std;

3const

int mod= 10007;4

long

long c[1001][1001];5

inta,b,k,n,m;

6int

main()

12long

long res=1;13

for(int i=1;i<=n;i++) res=(res*a)%mod; //

a^n14

for(int i=1;i<=m;i++) res=(res*b)%mod; //

b^m15 res=(res*c[k][m])%mod;

16 cout<17return0;

18 }

NOIP 2011 計算係數

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

NOIp2011 計算係數

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

NOIP2011計算係數

題目分析 相信看到這道題的時候,大家都有那麼一絲絲的莫名的心慌 可憐的大家 作為第一題,他為什麼不做好自己送分的職責,反而又要注意去模,又要注意long long。相信只要略微有一點數學底子的同學知道,這其實就是楊輝三角 或組合數 對乙個oier用dp的思想就可以解決了。不知道楊輝三角的,你dp怎麼...