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

2022-05-20 08:42:14 字數 1739 閱讀 7763

組合數 $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\)。(額外的,當 n=0n=0 時, n!=1n!=1)

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

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

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

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

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

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

\(\\\)

首先考慮使用盧卡斯定理:

\[\text(n,m)\bmod k=\text(\frac,\frac)\cdot\binom\bmod k

\]迭代過程中只要有一位上的\(\binom=0\)那麼最後的組合數就是\(k\)的倍數。當\(n時,只有\(n的情況下:\(\binom=0\)。

我們將\(n,m\)寫成\(k\)進製的數,然後做數字\(dp\)。先不考慮\(j\leq i\)的限制的話要好做一些,然後在減掉\(j>i\)的情況(這部分顯然為0)就好了。

**(小心爆\(long\ long\)):

#include#define ll long long

using namespace std;

inline ll get() while('0'<=ch&&ch<='9') return x*f;}

const ll mod=1e9+7;

ll n,m,k;

ll a[100],b[100];

int d;

#define pr pair#define mp(a,b) make_pair(a,b)

pr f[100][2][2];

pr dfs(int v,int flag1,int flag2) else

} }f[v][flag1][flag2]=mp(ans0,ans1);

return mp(ans0,ans1);

}ll cal(ll l,ll r)

int main()

d--;

ll x=n;

for(int i=0;i<=d;i++)

x=m;

for(int i=0;i<=d;i++)

for(int i=0;i<=d;i++)

for(int a=0;a<=1;a++)

for(int b=0;b<=1;b++) f[i][a][b]=mp(-1,-1);

pr ans=dfs(d,1,1);

ans.first=(ans.first-cal(max(1ll,m-n)%mod,m%mod)+mod)%mod;

cout<} 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 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數 c n m 的一般公式 begin c n m frac notag end 其中...

UOJ 275 最短路徑問題

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