noip2011 數學 計算係數 逆元求組合數

2021-07-23 17:46:03 字數 1148 閱讀 2858

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

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

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

1 1 3 1 2

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

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

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

這個題就是乙個組合數或者楊輝三角,公式可以很快退出來cn

k×an

×bm

然後我覺得最快的方法是用逆元求組合數,是o(n)的其他方法都是o(n2

)雖然都可以過,然後線性求逆元可與去看這篇文章: 我就不詳細寫了

然後這道題**如下:

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#include

#define inf 2100000000

#define ll long long

#define clr(x) memset(x,0,sizeof(x))

#define clrmax(x) memset(x,127,sizeof(x))

using

namespace

std;

#define m 1005

#define p 10007

ll k,m,n,a,b;

ll inv[m];

void get_inv()

ll mi(ll a,ll b)

ll c(ll a,ll b)

int main()

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