關於組合數的一些東西

2021-08-10 15:03:01 字數 2711 閱讀 2100

組合數對應著楊輝三角楊輝三角中第i行j個表示cj

−1i−

1 由組合數的定義cj

i=ci

−ji

根據二項式展開(x

+1)n

=∑ni

=0ci

nxi

x=1時∑ni

=0ci

n=2n

∑2|i,i≤

ncin

=∑2/

|n,i

≤nci

n=2

這個可以在楊輝三角上將每乙個點分解得出: 當2

|n,由於有對稱性,證明顯然 當2

/|n ,如圖

同樣,將楊輝三角上的點合併:

c 證明

:左式=

(a+b

+c)!

a!(b

+c)!

∗(b+

c)!b

!c!=

(a+b

+c)!

a!b!

c!=(

a+b)

!a!b

!∗(a

+b+c

)!(a

+b)!

c!=c

ca+b

+c∗c

aa+b

也可以用定義證明。

【51nod 1362】推箱子

大意:n*m的網格圖從格點(0,0)走到第n行的某個格仔停止,要求只能向下或向右,或到右下方的格仔

即(x,y)走到(x+1,y),(x,y+1),(x+1,y+1)

問方案數,對x取模 1≤

n≤800,1≤

m,x≤

2∗109

多組資料

input

1 2 10

3 3 100

output

9

96

n這麼小?!

列舉終點

再列舉斜著走i格,然後套上組合數:an

s=∑p

=0m∑

i=0m

in(p

,n)c

in+p

−i∗c

n−in

−i+p

−i發現

(n−i

)+(p

−i)+

i=n+

p−i=

∑p=0

m∑i=

0min

(p,n

)cin

∗cp−

in+p

−i=∑

i=0m

in(n

,m)c

in∑p

=imc

nn+p

−i=∑

i=0m

in(n

,m)c

in∑p

′=0m

−icn

n+p′

p′代替

p−i,

發現可以

套另乙個

公式=∑

i=0m

in(n

,m)c

ni∗c

n+1n

+m−i

+1%x怎麼辦?

x不是質數!!

x不是質數就不能用費馬小定理求逆元。

尤拉定理求逆元呢?

那要互質啊。

誒n<=800!

那我們直接強行分解質因數就好了!!

然而質因數個數?

想到由於x的質因數很小,所以,與x互質的分母直接用尤拉定理求逆元。其他的強算即可。

記得要用快速乘,不然unsignedll都會爆。

code:

#include

#include

#define ll long long

using namespace std;

int pr[100100],s[100100],d[100100],n,m,t,ola,c[1000][1000];

ll x,ans,ans,div;

bool bz[100100];

void swap(int &a,int &b)

ll qmul(ll a,ll b)

ll qpow(ll a,int b)

void inc(int

x)ans=qmul(ans,(ll)x);

}void dec(int

x)div=qmul(div,(ll)x);

}int main()

}while(~scanf("%d

%d%lld",&n,&m,&x))

if(tmp==1)break;

if(pr[i]*pr[i]>tmp)

}for(int i=0;i<=n && i<=m;i++)printf("%lld\n",ans);}}

一些組合數學

f x x 1 f x 1 f x 2 f x 含義為放置的所有數中有 x 個數錯位排列的情況數。假定當前準備放置第 x 個數。初始時將第 x 個數放在標號為 x 的位置。此時需要將 x 與前 x 1 個數中的某乙個交換 若前 x 1 個數均錯位排列,那麼目前有 x 1 種交換方案,即 f x le...

組合數的一些性質

眾所周知,當n,m在自然數集中有 cm n n m n m 由此可證得cm n cm n 1 cm 1 n 1 而cm n 1 mc n m 1m是否也能用兩個組合數來表示cm n答案是肯定的。容易猜想cm n c m n 1 cm 1 n 1而且猜想很容易證得是正確的。證明如下 cm n 1 m ...

學習筆記 關於組合數的一些總結

1 dbinom dbinom 2 dbinom dbinomm dbinom 3 sum limits dbinom dbinom 4 sum limits n dbinom dbinom 5 a b n sum limits n dbinoma ib 6 sum limits m dbinom ...