計算多項式的係數

2021-08-15 01:12:49 字數 1240 閱讀 8942

給定乙個多項式 (a

x+by

)k( ax

+by)

k,計算多項式展開後 xn

ymx ny

m項的係數。

input

第 1 行:乙個整數 t (1≤t≤100000)為問題數。

接下來共 t 行。每行 5 個整數,分別為 a,b,k,n,m,整數之間由乙個空格分隔。

0≤k≤1,000,000,0≤n,m≤k,且 n+m=k,0≤a,b≤10^9。

output

對於每個問題,輸出一行問題的編號(0 開始編號,格式:case #0: 等)。

然後對應每個問題在一行中輸出乙個整數,表示所求的係數(這個係數可能很大,輸出對 1000000007 取模後的值)。

由於n,m過大不能直接預處理組合數;又因為p過大lucas定理的遞迴形式在這裡也不能直接使用。後來才發現原來只要預處理階乘+快速冪+逆元求組合數就可以了。。。

#include 

#define p 1000000007

#define k 1000000

typedef long long ll;

ll a, b, k, n, m, fac[k+1];

void init()

ll pow_mod(ll a, ll x)

return ret;

}ll c(ll n, ll m)

int main()

return

0;}

順便扔個lucas模板(非原創)備用,n,m較大而p較小時可用:

#include

#define p 10007

using

namespace

std;

typedef

long

long ll;

ll pow_mod(ll a, ll x, int p)

return ret;

}ll comb(ll a, ll b, int p)

ans = (ca * pow_mod(cb, p-2, p)) % p;

return ans;

}ll lucas(ll n, ll m, int p)

return ans;

}int main()

}return

0;}

計算多項式係數

題目描述 給定乙個多項式 ax by k ax by k ax by k,求a nb ma nb m anbm 係數輸入格式 共一行,包含5個整數,分別為a,b,k,n,m每兩個整數之間用乙個空格隔開.輸出格式 出共1行,包含乙個整數,表示所求的係數,這個係數可能很大,輸出對1000000007取模...

python 多項式求係數 多項式係數的計算

def evalpoly lst,x total 0 for power,coeff in enumerate lst starts at 0 by default total x power coeff return total 或者,可以使用列表,然後使用sum def evalpoly lst...

3006 計算多項式的係數 II

單點時限 5.0 sec 記憶體限制 256 mb 給定乙個多項式 ax by k,計算多項式展開後 xnym 項的係數。輸入格式 第 1 行 乙個整數 t 1 t 100000 為問題數。接下來共 t 行。每行 5 個整數,分別為 a,b,k,n,m,整數之間由乙個空格分隔。0 k 1,000,0...