NOIP2011 計算係數

2022-07-16 19:18:09 字數 532 閱讀 5433

求二項式展開後某一項的係數,這屬於高中數學必會的內容,這沒什麼好說的,最後可以得到係數就等於c(k,n)*a^n*b^m。

求乘方用快速冪,那麼組合數呢?一是可以用楊輝三角推,再就是可以通過逆元求組合數取模。

楊輝三角就是依託c(n,m)=c(n-1,m-1)+c(n-1,m),很好實現,下面主要說說用逆元怎麼做。

c(n,m)=n!/(m!*(n-m)!),因為要取模,所以我們要用逆元來代替除法,我們先預處理出1!到n!,然後利用費馬小定理求逆元求出m和n-m的逆元,其實就是n!*m^(p-2)*(n-m)^(p-2)。

1 #include 2

3const

int maxk = 1005, p = 1e4 + 7;4

5int

fact[maxk];

67 inline int quick_pow(int a, int

b) 13

return

ans;14}

1516

intmain()

ac**

NOIP2011 計算係數

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

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樣例輸出...