組合數問題

2021-08-14 14:45:41 字數 1003 閱讀 7780

題目描述

組合數c_n^mc

n m

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

c_n^m=\fracc

n m

​ =

m!(n−m)!

n! ​

其中n! = 1 × 2 × · · · × n

小蔥想知道如果給定n,m和k,對於所有的0 <= i <= n,0 <= j <= min(i,m)有多少對 (i,j)滿足c_i^jc

i j

​ 是k的倍數。

輸入輸出格式

輸入格式:

第一行有兩個整數t,k,其中t代表該測試點總共有多少組測試資料,k的意義見 【問題描述】。

接下來t行每行兩個整數n,m,其中n,m的意義見【問題描述】。

輸出格式:

t行,每行乙個整數代表答案。

思路:once upon a time someone qyh_dark♂_lao told me that組合數就是楊輝三角,then i forgot…

所以,先處理乙個楊輝三角,在上面做遞推就好啦!!!

**:

#include

#include

#include

using

namespace

std;

int c[2222][2222],f[2222][2222];

int t,k;

int main()

for(int i=1; i<=2000; i++)

for(int j=1; j1][j-1]+c[i-1][j])%k;

for(int i=1; i<=2000; i++)

for(int j=1; j<=2000; j++)

while(t--)

}

問題 A 組合數

唯一分解定理在此 時間限制 1 sec 記憶體限制 128 mb 提交 1938 解決 147 提交 狀態 命題人 jsu admin 題目描述 求組合數c n,m 以及c n,m 因子個數。輸入n和m,其中0 m n 50,以eof結束。輸出該組合數結果 樣例輸入 copy 3 2 4 2樣例輸出...

組合數問題

問題描述 組合數表示的是從n個物品中選出m個物品的方案數。舉個例子,從 1,2,3 三個物品中選擇兩個物品可以有 1,2 1,3 2,3 這三種選擇方法。根據組合數的定義,我們可以給出計算組合數的一般公式 其中n 1 2 n。小蔥想知道如果給定n,m和k,對於所有的0 i n,0 j min i,m...

C 組合數問題

輸入一組元素,從所給的元素中任意取n個 n 總個數 元素組合,計算可以組合的個數 例如 從a b c d e 中任意取2個元素兩兩組合,可以有10種方法 設共有m個元素,取n個元素兩兩組合,共有 m n m n 種方法。include using namespace std void input i...