組合數學總結

2022-02-03 14:31:18 字數 826 閱讀 9521

歷時九天,組合數學快要結束了,寫篇部落格總結一下

emmm......眾所周知,數學一直是我的乙個薄弱i項,這次也算是乙個很好的鍛鍊

先列一下這次都用了哪些知識點

1.組合數(廢話)

2.逆元

3.盧卡斯定理

4.資料結構(數狀陣列/線段樹)

5.高精

6.暴力打表,瞎猜規律

先來幾道水題

a.排隊

這題一度讓我體會到高精的恐懼

式子很簡單:(n+2)!*a(n+3,m)-(n+1)!*2*a(n+2,m)

b.perm排列計數

只要把題中的pi>pi/2轉化成pi

i<<1,pi

i<<1|1就好了,二叉樹上簡單的樹形dp,需要用到盧卡斯

式子:dp[i]=dp[i<<1]*dp[i<<1|1]*c(size[i]-1,size[i<<1])

c.地精部落

這題網上有許多解法,這裡只介紹組合數解法

其實和perm的dp差不多,我們可以發現對於k個數來說每個數是多少沒有影響,而每加乙個數只能成為山峰

式子:dp[i][(i-j-1)&1]=∑dp[i][(i-j-1)&1]+1ll*dp[j][1]*dp[i-j-1][(i-j-1)&1]*c[i-1][j];

組合數直接楊輝三角就好了

接下來高能預警

d.集合計數

一道卡了好久的題

直接計算不好解,我們考慮容斥

以c(n,k)*2^2^(n-k)為全集

減去c(n,k+1)*2^2^(i-k-1)×c(k+1,k)

加上

組合數學 求組合數

對於求組合數,要根據所給資料範圍來選擇合適的演算法 這道題中所給的資料範圍適合用打表的方法直接暴力求解 先用4e6的複雜度預處理出所有的情況,再用1e4的複雜度完成詢問即可 include using namespace std const int n 2010 const int mod 1e9 ...

計數 組合數學總結

本文持續更新 對計數,組合數學dp作總結,給出思路,狀態轉移方程,略去 狀態初始值等。1 劃分數 1 m個不可區分的物品分成n份,每份的數量大於等於0,求劃分的方法數。思路 1 若m n,則等價於m個物品劃分為m份。2 否則,若至少存在1份數量為0,則相當於m個物品劃分為n 1份 若每份數量大於等於...

數學 組合數學

mod must be a prime const int mod 1e9 7 namespace combinatory ll inv ll x ll fac maxn invfac maxn void initc int n ll a ll n,ll m ll c ll n,ll m ll d ...