UOJ 275 清華集訓2016 組合數問題

2022-05-09 15:43:04 字數 2067 閱讀 4030

試題描述

組合數 \(c_n^m\) 表示的是從 \(n\) 個物品中選出 \(m\) 個物品的方案數。舉個例子,從 \((1,2,3)\) 三個物品中選擇兩個物品可以有 \((1,2),(1,3),(2,3)\) 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 \(c_n^m\) 的一般公式:

\begin

c_n^m=\frac

\notag

\end

其中 \(n!=1 \times 2 \times \cdots \times n\)。(額外的,當 \(n=0\) 時, \(n!=1\))

小蔥想知道如果給定 \(n,m\) 和 \(k\),對於所有的 \(0 \le i \le n,0 \le j \le min(i,m)\) 有多少對 \((i,j)\) 滿足 \(c_i^j\) 是 \(k\) 的倍數。

答案對 \(10^9+7\) 取模。

輸入第一行有兩個整數 \(t,k\),其中 \(t\) 代表該測試點總共有多少組測試資料。

接下來 \(t\) 行每行兩個整數 \(n,m\)。

輸出\(t\) 行,每行乙個整數代表所有的 \(0 \le i \le n,0 \le j \le min(i,m)\) 中有多少對 \((i,j)\) 滿足 \(c_i^j\) 是 \(k\) 的倍數。

輸入示例1

1 2

3 3

輸出示例1
1
輸入示例2
2 5

4 56 7

輸出示例2
0

7

輸入示例3
3 23

23333333 23333333

233333333 233333333

2333333333 2333333333

輸出示例3
851883128

959557926

680723120

資料規模及約定

對於 \(20\texttt\) 的測試點,\(1 \le n,m \le 100\);

對於另外 \(15\texttt\) 的測試點,\(n \le m\);

對於另外 \(15\texttt\) 的測試點,\(k=2\);

對於另外 \(15\texttt\) 的測試點, \(m \le 10\);

對於 \(100\texttt\) 的測試點, \(1 \le n,m \le 10^,1 \le t,k \le 100\),且 \(k\) 是乙個質數。

題解千萬不要忘了 \(k\) 是乙個質數!!!

這題用 lucas 定理,即 \(c_n^m\ mod\ p = c_^ \cdot c_\rfloor}^\rfloor}\ mod\ p\),那麼就不難想到把 \(n\) 和 \(m\) 變成 \(k\) 進製數然後數字 dp 了。

#include #include #include #include #include #include using namespace std;

#define ll long long

#define rep(i, s, t) for(int i = (s); i <= (t); i++)

#define dwn(i, s, t) for(int i = (t); i >= (s); i--)

ll read()

while(isdigit(c))

return x * f;

}#define maxn 61

#define maxk 102

#define mod 1000000007

int t, k, c[maxk][maxk];

struct num

num(ll _): val(_)

} n, m;

int f[maxn][2][2][2][2];

void add(int& a, int b)

void dp()

int main()

} while(t--)

return 0;

}

UOJ275 清華集訓2016 組合數問題

組合數 cm n cnm 表示的是從 n n 個物品中選出 m role presentation style position relative m m個物品的方案數。舉個例子,從 1 2,3 1,2,3 三個物品中選擇兩個物品可以有 1 2 1,3 2 3 1,2 1,3 2,3 這三種選擇方法...

UOJ 275 清華集訓2016 組合數問題

組合數 c n m 表示的是從 n 個物品中選出 m 個物品的方案數。舉個例子,從 1,2,3 1,2,3 三個物品中選擇兩個物品可以有 1,2 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 c m n 的一般公式 c n m frac 其中 n 1 2 n 額外的,當 ...

UOJ 275 最短路徑問題

題目描述 平面上有n個點,每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短路徑。輸入描述 輸入檔案共n m 3行,其中 第一行為整數n。第2行到第n 1...