不是你想象中的組合數計算

2021-08-16 04:35:15 字數 1139 閱讀 8301

我們印象中計算組合數的公式c(

kn)=

a(kn

)a(k

k)但其實,還有另外乙個,常見於程式設計使用c(

kn)=

c(k−

1n−1

)+c(

kn−1

) problem:挑選子集

description

給定n個整數a1, a2, … an,小hi希望從中選出m個整數,使得任意兩個選出的整數的差都是k的倍數。

請你計算有多少種不同的選法。由於選法可能非常多,你只需要輸出對1000000009取模的結果。

input

第一行包含三個整數n、m和k。

第二行包含n個整數a1, a2, … an。

對於30%的資料,2 ≤ m ≤ n ≤ 10

對於100%的資料,2 ≤ m ≤ n ≤ 100 1 ≤ k, ai ≤ 100

sample input

5 3 2

1 2 3 4 5

sample output

1

#include 

#include

#define ll long long

using

namespace

std;

const

int mod =1000000009;

int c[101][101];//記錄組合數

int cnt[101];//記錄模k的餘數

int main()

c[0][0]=1;

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

}ll ans=0;

for(int i=0;iif(cnt[i]>=m)

ans += c[cnt[i]][m];

}ans %= mod;

if(ans<0)

ans += mod;

cout

0;}

數學和計算機是緊密聯絡的,大家要多多思考

async await 真不是你想象中那麼簡單

先上 function getdata data,time time let results let starttime new date laucher async function laucher 在 毫秒放入 let datab await getdata b 3000 results.pus...

BlockChain區塊鏈 這不是你想象的那樣

你真的知道它是什麼嗎?即使你是一名軟體工程師,你也可能會有零或接近於零的知識。您可以聽到人們基本上圍繞每個角落談論區塊鏈。你會聽到他們說在這些貨幣和ico上賺錢是多麼容易,以及區塊鏈技術如何接管世界,取代銀行,中介和等待它 甚至是網際網路本身。這是他們說的新網際網路。現在我對你說實話,我不打算在這裡...

大學不是想象的中那樣

從初中開始,就幻想上高中,因為要分科,以後就不會學文科了,上到高中又幻想大學,認為在大學了才能靜下心來搞軟體,可是通過這半年的學習,我個人感受是 大學不是想象中的那麼完美,他也是有缺陷的。一 對於專業課的要求上,學校並沒有投入多大的注意力,這估計跟我就讀的學校有關,是石油大學,使用的教材也只是印度最...