日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

c语言容斥原理,容斥原理 | 易学教程

發(fā)布時間:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 c语言容斥原理,容斥原理 | 易学教程 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

容斥原理

\(|A_1\cup A_2\cup...\cup A_n|=\sum\limits_{1\le i\le n}|A_i|-\sum\limits_{1\le i

二項式反演

形式1

\(f_i=\sum_{j=k}^n C(i,j)*g_j \Leftrightarrow g_i=\sum_{j=k}^n (-1)^{i-j}*C(i,j)*f_j\)

形式2

\(f_i=\sum_{j=k}^n (-1)^j*C(i,j)*g_j \Leftrightarrow g_i=\sum_{j=k}^n (-1)^j*C(i,j)*f_j\)

證明1

\(|A_1\cup A_2\cup...\cup A_n|=\sum\limits_{1\le i\le n}|A_i|-\sum\limits_{1\le i

\(\Rightarrow |\complement A_1\cap \complement A_2\cap...\cap \complement A_n|=|S|-\sum\limits_{1\le i\le n}|A_i|+\sum\limits_{1\le i

\(\Rightarrow |A_1\cap A_2\cap...\cap A_n|=|S|-\sum\limits_{1\le i\le n}|\complement A_i|+\sum\limits_{1\le i

假設現(xiàn)在交集的大小僅是關于集合個數(shù)的函數(shù),

設\(f_n\)表示\(|A_1\cap A_2\cap...\cap A_n|\),\(g_n\)表示\(|\complement A_1\cap

\complement A_2\cap...\cap \complement A_n|\),且\(f(0)=g(0)=|S|\),則

\(f_i=\sum_{j=0}^i (-1)^j*C(i,j)*g_j\)

\(g_i=\sum_{j=0}^i (-1)^j*C(i,j)*f_j\)

形式2得證,證明形式1只需代換即可.

對于\(\sum_{j=k}^i\)的情況,請看證明2.

證明2

對于形式1,把\(f_i\)代入右側式子得

\(g_i=\sum_{j=k}^i (-1)^{i-j}*C(i,j)*\sum_{l=k}^j C(j,l)*g_l\)

\(=\sum_{l=k}^i \sum_{j=l}^i (-1)^{i-j}*C(i,j)*C(j,l)*g_l\)

\(=\sum_{l=k}^i \sum_{j=l}^i (-1)^{i-j}*\frac{i!}{j!(i-j)!}*\frac{j!}{l!(j-l)!}*g_l\)

\(=\sum_{l=k}^i \sum_{j=l}^i (-1)^{i-j}*\frac{(i-l)!}{(i-j)!(j-l)!}*\frac{i!}{(i-l)!l!}*g_l\)

\(=\sum_{l=k}^i C(i,l)*g_l*\sum_{j=l}^i (-1)^{i-j}*C(i-l,j-l)\)

當\(i\neq l\)時,由二項式定理,得\(\sum_{j=l}^i (-1)^{i-j}*C(i-l,j-l)=(1-1)^{i-l}=0\)

當\(i=l\)時,\(\sum_{j=l}^i (-1)^{i-j}*C(i-l,j-l)=1\)

\(\therefore g_i=[i=l]*C(i,l)*g_l=g_i\),得證.

習題

A. HDU 4135

求 \([A,B]\) 中有多少個數(shù)與 \(N\) 互質(zhì)。 \(A,B\le 10^{15},N\le 10^9\)

\(O(\sqrt n)\) 找出 \(n\) 的所有質(zhì)因子,然后指數(shù)級容斥。可以證明質(zhì)因子個數(shù)不會超過15個。

B. HDU 4059

\(T\le 1000\) 組詢問,給定 \(n\) ,求與 \(n\) 互質(zhì)的數(shù)的四次方和。

\(O(\sqrt n)\) 找出 \(n\) 的所有質(zhì)因子,然后指數(shù)級容斥。可以證明質(zhì)因子個數(shù)不會超過6個。

C. HDU 5201

有 \(n\) 件物品, \(m\) 個人,現(xiàn)在要把物品分給人,要求沒有一個人拿到的物品數(shù)大于等于第一個人拿到的物品數(shù)。求方案數(shù)。多組數(shù)據(jù)。 \(T\le 25,n,m\le 10^5\)

先枚舉第一個人拿到的物品數(shù) \(i\)。

然后就要求把 \(n-i\) 個物品分給 \(m-1\) 個人且每個人不能超過 \(i\) 的方案數(shù)。

來源:https://www.cnblogs.com/BlogOfchc1234567890/p/10885615.html

總結

以上是生活随笔為你收集整理的c语言容斥原理,容斥原理 | 易学教程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。