題目描述
已知f[1][1]=1,f[i][j]=a*f[i-1][j]+b*f[i-1][j-1] (i>=2,1<=j<=i)。
對於其他情況f[i][j]=0
有t組詢問,每次給出a,b,n,m,求f[n][m] mod (998244353)
輸入描述:
第一行為乙個整數t,表示詢問個數。
接下來一共t行,每行四個整數a,b,n,m。
輸出描述:
一共t行,每行乙個整數,表示f[n][m] mod (998244353)
示例1
輸入 2
2 3 3 3
3 1 4 1
輸出 9
27 備註:
我們利用費馬小定理來求c(n,m)。用快速冪來求後邊的兩項
#include
using namespace std;
#define ll long long
const int n = 100000+11;
const int p = 998244353;
ll k[n];
void init()
ll qkm(ll a,ll b,ll c)
return
s%c;
}ll c(ll n,ll m,ll p)
int main()
return
0;}
費馬小定理求逆元
求餘的概念 a b p a p b p p a b p a p b p p a b p a p b p p 為什麼要求逆元 對於一些題目,我們必須在中間過程中進行求餘,否則數字太大,電腦存不下,那如果這個算式中出現除法,我們是不是對這個算式就無法計算了呢?這時候就用到了逆元。費馬曾經說過 費馬小定理...
乘法逆元 費馬小定理
我實在是太.才明白這個qwq 一 前置知識 定義1 給定正整數m,若用m除兩個整數a和b所得的餘數相同,稱a和b對模m同餘,記作a b mod m 並稱該式子為同余式 否則稱a和b對模m不同餘 二 乘法逆元 若整數b,p互質,並且b a,則存在乙個整數x,使得 a b a x mod p 稱x為b的...
乘法逆元與費馬小定理
乘法逆元 我們知道 a b m a 1 b m 令1 b 等於 h 那麼 h就是b關於m的乘法逆元,其實就是關於m的乙個相反數,b h 1 m 那麼我們如何求乘法逆元呢 擴充套件歐幾里得演算法b h 1 m 可以等價於b x m y 1 那麼我們主需要呼叫歐幾里得演算法求解出來就可以了。int ca...