B 白兔的式子

2021-08-16 19:34:07 字數 761 閱讀 2137

已知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)

根據公式可將f[n][m]看成是走n步到達m公尺,其中要麼不走,要麼一次走1公尺,由於f[1][1] = 1限定為了1種方式,所以實際上相當於只走n-1步,到達m-1公尺的方法數,另外不走的方法又有a種,走的方法又有b種,生成函式為(a+bx)^n-1,最終得到

f[n][m] = c(n-1,m-1) * a^(n - m) * b^(m - 1)

#include #include #include using namespace std;

#define mod 998244353

long long d[100005];

long long quickpow(int a,int k)

q = q * q % mod;

k >>= 1;

}return ans;

}void init()

}int main()

return 0;

}

白兔的式子(費馬小定理 逆元)

題目描述 已知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。...

Codeforces 1188B 式子轉化

思路 看到 a b 想到乘上 a b 變成平方差展開 並沒有想到2333 兩邊同時乘上a b,最後式子轉化成了a 4 ka b 4 kb,剩下的就水到渠成了。0的時候特判一下即可。include define ll long long define inf 0x3f3f3f3f define pii...

白兔的字串

時間限制 c c 1秒,其他語言2秒 空間限制 c c 262144k,其他語言524288k 64bit io format lld白兔有乙個字串t。白雲有若干個字串s1,s2 sn。白兔想知道,對於白雲的每乙個字串,它有多少個子串是和t迴圈同構的。所有字元都是小寫英文本母 輸入描述 第一行乙個字...