題目鏈結
哇我乙個活人的智商被題目碾壓了
可以把問題轉化為有nk個物品,問拿i件物品的方案數有多少種,其中i%k=r。
然後矩陣乘法加速dp即可。
#include#include#include
#include
#include
#define maxn 55
using
namespace
std;
inline
long
long
read()
while
(isdigit(ch))
return num*f;
}int m;long
long
mod,n,r;
struct
matrix
matrix
operator *(matrix a)
}start,d;
matrix pow(matrix a,
long
long
b)
return
ret;
}int
main()
題解 lg3746 組合數問題
題面 式子看起來很嚇人哈 不過我們來考慮它的實際意義 就是在 nk 個物品中選擇 模k餘數為r 的方案數和 設 f i,j 表示選 在 i 個物品中選擇 模k餘數為j 的方案數和 容易得到 f i,j f i 1,j 1 f i 1,j 當然,為了避免負數,我們寫成這種模樣 f i,j f i 1,...
LUOGU P2822 組合數問題
題面 由於要求對k取模為0的值,所以我們遞推求組合數時一直對k取模就行了 然後算出二維字首和,o n 2 預處理,o 1 回答。bzoj上和這個不太一樣,那個是要盧卡斯定理。include define ll long long using namespace std const int maxn ...
luogu P2822 組合數問題
題面傳送門 對於這道題,其實題目很簡單,暴力很好打。想法1 11 對於每組輸入資料,暴力判斷兩重迴圈列舉,一重迴圈計算組合數。時間複雜度o t n3 o tn 3 o tn3 大概30 3030 分想法2 22 把每組數的組合存下來,直接呼叫。時間複雜度o t n2 o tn 2 o tn2 大概3...