給定乙個多項式 (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...