組合數問題(組合數公式轉換 字首和)

2021-10-03 18:59:36 字數 1332 閱讀 9939

組合數的定義

給你n個數,從中取出m個數,共有 cn

m中取法,cn

m=n!/(m!*(n-m)!)。

重要公式

cnm= cn-1

m+ cn-1

m-1

題目大意

資料有t組,給你n,m,k,問你對於所有的i∈[0,n],j∈[0,min(i,m)],有多少對ci

j可以整除k。

t<=1e4,n,m<=2000;

思路

暴力跑的時間複雜度是o(tn2),直接超時,所以我們需要找一種查詢時間複雜度為o(1)的方法。

看到上面那個公式,cn

m= cn-1

m+ cn-1

m-1,再看看資料範圍,n,m都是2000以內,那麼我們可以把乙個2000*2000的矩陣預處理出來,裡面存ci

j,這個操作只需要4e6的時間,然後對每個t,o(1)查詢就可以。

#include

using

namespace std;

const

int n=

2e3+5;

const

int inf=

0x7fffffff

;const

int mod=

1e9+7;

const

int eps=

1e-6

;typedef

long

long ll;

#define fi first

#define se second

#define mp make_pair

#define pb push_back

#define pii pair

//#define int long long

#define ios ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);

#define endl '\n'

int t,k,n,m;

int c[n]

[n],s[n]

[n];

void

fun()}

for(

int i=

2;i<=

2000

;i++

) s[i]

[i+1

]=s[i]

[i];}}

signed

main()

}

組合數公式

若表示在 n 個物品中選取 m 個物品,則如存在下述公式 所以可以用遞推算組合數 題目描述 開學了,學校又迎來了好多新生。acmer想為新生準備乙個節目。來報名要表演節目的人很多,多達n個,但是只需要從這n個人中選m個就夠了,一共有多少種選擇方法?輸入 測試例項包括多組測試資料,每組資料佔一行。每組...

組合數問題

題目描述 組合數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 小...

問題 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樣例輸出...