中等組合計數小結


前言

中等組合計數與初等組合計數大有不同,有人指出,初等組合計數看天賦,中等組合計數看套路,這句話很好地說明了我接下來,即將呈現給各位的知識的特點,也提示了應有的學習態度,我承認此處知識確實很高深,不好入門,本人也是在毫無外援,靠幾篇博客所學,特此感謝peng-ym,我已體會到了單打獨斗的痛苦與折磨了,特此作此小結,希望后人能少走彎路,直達思維迷宮的終點。

容斥原理

容斥原理

設有集合\(\{S_1,S_2,...,S_n\}\)\(|S_i|\)表示集合大小,有:

\[|\bigcup_{i=1}^{n}S_i|=\sum_{i=1}^n|S_i|-\sum_{1\leq i<j\leq n}|S_i\bigcap S_j|+\sum_{1\leq i<j<k\leq n}|S_i\bigcap S_j \]

\[\bigcap S_k|-...+[-(-1)^n]|\bigcap_{i=1}^nS_i| \]

pic

用途:直接做組合計數問題不好做,可以考慮容斥,

時間復雜度:\(O(2^n)\)

證明:

不妨提出交集集合數的概念,為幾個集合交集,而集合重復次數,為該集合在進行大小計算時被累加的次數,於是可以列表

交集集合數 1 2 3 ... i ... n
符號表示 \(S_i\) \(S_i\bigcap S_j\) \(S_i\bigcap S_j \bigcap S_k\) ... \(\bigcap_{j=1}^iS_j\) ... \(\bigcap_{j=1}^nS_j\)
集合重復次數
當前操作

當前操作的意思是是否累加該個集合大小,於是

1.考慮原式的第1項

交集集合數 1 2 3 ... i ... n
符號表示 \(S_i\) \(S_i\bigcap S_j\) \(S_i\bigcap S_j \bigcap S_k\) ... \(\bigcap_{j=1}^iS_j\) ... \(\bigcap_{j=1}^nS_j\)
集合重復次數 \(C_1^1\) \(C_2^1\) \(C_3^1\) ... \(C_i^1\) ... \(C_n^1\)
當前操作 +

2.考慮原式的第2項

交集集合數 1 2 3 ... i ... n
符號表示 \(S_i\) \(S_i\bigcap S_j\) \(S_i\bigcap S_j \bigcap S_k\) ... \(\bigcap_{j=1}^iS_j\) ... \(\bigcap_{j=1}^nS_j\)
集合重復次數 \(C_1^1\) \(C_2^1-C_2^2\) \(C_3^1-C_3^2\) ... \(C_i^1-C_i^2\) ... \(C_n^1-C_n^2\)
當前操作 \(+\) \(-\)

3.考慮原式的第3項

交集集合數 1 2 3 ... i ... n
符號表示 \(S_i\) \(S_i\bigcap S_j\) \(S_i\bigcap S_j \bigcap S_k\) ... \(\bigcap_{j=1}^iS_j\) ... \(\bigcap_{j=1}^nS_j\)
集合重復次數 \(C_1^1\) \(C_2^1-C_2^2\) \(C_3^1-C_3^2+C_3^3\) ... \(C_i^1-C_i^2+C_i^3\) ... \(C_n^1-C_n^2+C_n^3\)
當前操作 \(+\) \(-\) \(+\)

....

於是我們可以得到對於i個集合交集的重復次數,表達式應為\(C_i^1-C_i^2+C_i^3-...+[-(-1)^i]C_i^i=\sum_{j=1}^i[-(-1)^i]C_i^j\),而又有引理:

\[0=0^i=(1-1)^i=\sum_{j=0}^i(-1)^jC_i^j \]

\[\sum_{j=1}^i(-1)^jC_i^j=-1\Rightarrow\sum_{j=1}^i[-(-1)]^jC_i^j=1 \]

故上式結果為1,於是我們可以說每個交集部分當且僅當重復一次,故得證。

多重集組合數

\(\{n_1a_1,n_2a_2,...,n_ka_k\}\)表示有\(n_1\)\(a_1\),\(n_2\)\(a_2\)....的可重集合,從中取r個元素的方案數為

\[C_{k+r-1}^{k-1}-\sum_{i=1}^kC_{k+r-n_i-2}^{k-1}+\sum_{1\leq i<j\leq k}C_{k+r-n_i-n_j-3}^{k-1}-...+(-1)^kC_{k+r-(k+1)-\sum_{j=1}^kn_j}^{k-1} \]

證明:

所有方案數(不考慮元素的個數,即設其數量無限)不難得知是原式第一項,而當考慮其中一種元素必然不滿足條件不難得知為原式第二項,但是如此導致方案數減多了,於是加回兩種元素必然選多了,以此類推,不難得知為容斥。

練習

唯一分解定理

數學語言:\(n=p_1^{c_1}p_2^{c_2}...p_m^{c_m}(gcd(p_1,p_2,...,p_m)==1)\)

文字語言:任何一個數有且僅能被分解成幾個質因數之積。

用途:約數問題隱含條件

整除分塊

形式:\(\sum_{i=a}^b[c/i]d\)

解法:\([c/i]=[c/[c/[c/i]]]\),所以\(i-[c/[c/i]]\)的值都相同,故一起處理。

時間復雜度:\(O(\sqrt n)\)

證明:\(c/i\in[1,\sqrt n]\),故得證。

狄利克雷卷積

定義:\((f*g)(n)=\sum_{d|n}f(d)g(n/d)\)(讀做f卷g)

性質:

  1. 交換律 \(f*g=g*f\)
  2. 結合律\(f*g*h=f*(g*h)\)
  3. 分配律\((f+g)*h=f*h+g*h\)

用途:

  1. 函數證明
  2. 推式

(完全)積性函數

概念

完全積性函數:

定義:\(f(pq)=f(p)f(q)\)

積性函數:

定義:\(f(pq)=f(p)f(q)(gcd(p,q)==1)\)

共性:

  1. 積性函數卷積性函數仍為積性函數,不妨簡稱積積得積。

證明:
\(h=f*g,gcd(p,q)==1\),有

\[h(p)h(q)=\sum_{x|p}f(x)g(p/x)*\sum_{y|q}f(y)g(q/y) \]

又有對於任意\(x,y,f(xy)=f(x)f(y),g(pq/xy)=g(p/x)g(q/y)\),故x,y對應pq的一個約數d的\(f(d),g(pq/d)\),而相反地\(f(d),g(pq/d)\)只能唯一分解成一對x,y,故得證。

特別地有\(f*I\)

  1. 由唯一分解定理\(f(n)=f(p_1^{c_1})f(p_2^{c_2})...f(p_m^{c_m})\)

  2. \(f\)為積性函數,\(f*\epsilon=f\)

  3. 每個積性函數會存在\(f(ij)\)\(f(i),f(j)\)的關系,可以通過約數拆分,容斥以及分類討論,得到關系。

常見完全積性函數

恆等函數

符號:\(I\)

表達式:\(I(n)=1\)

性質:

  1. \((f*I)(n)=\sum_{d|n}f(d)\)

單位函數

符號:\(id\)

表達式:\(id(n)=n\)

  • 擴展:

\(id^2(n)=n^2\)也為完全積性函數,更一般地,\(id^k(n)=n^k\)也為積性函數。

元函數

符號:\(\epsilon\)

表達式:\(\epsilon(n)=(n==1)\)

性質:
\(f*\epsilon=f\)

常見積性函數

歐拉函數

符號:\(\varphi\)

表達式:\(\varphi(n)=n\prod_{i=1}^{m}\frac{p_i-1}{p_i}\)(\(p_i\)為n質因子)

表達式的證明:

法一:數學歸納

法二:唯一分解定理+積性拆分

性質:

  1. 積性

  2. \(\varphi(n)=\varphi(n/p)\times p(p\in prime,p|n,p^2|n)\)

證明:
\(\varphi(n)=n\prod_{i=1}^{m}\frac{p_i-1}{p_i}=\frac{n}{p}\prod_{i=1}^{m}\frac{p_i-1}{p_i}*p=\varphi(n/p)\times p\)

用途:線性遞推

  1. \(\varphi *I=id\ or\ \sum_{d|n}\varphi(d)=n\)

證明:
由積積得積易知\(\varphi*I\)也為積性函數,故不妨記\(f=\varphi*I\),於是由唯一分解定理有\(f(n)=f(p_1^{c_1})f(p_2^{c_2})...f(p_m^{c_m})\),對於其中一項\(f(p_i^{c_i})=\varphi(1)+\varphi(p_i^1)+...+\varphi(p_i^{c_i})=1+p_i-1+p_i(p_i-1)\)
\(+...+p_i^{c_i-1}(p_i-1)=1+(p_i-1)(1+...+p_i^{c_i-1})=1+\)
\((p_i-1)\frac{p_i^{c_i}-1}{p_i-1}=1+p_i^{c_i-1}-1=p_i^{c_i}\),於是\(f(n)=p_1^{c_1}p_2^{c_2}...p_m^{c_m}=n\),所以得證。

用途:

1.隱含條件,式子證明

約數個數

符號:\(d\)

表達式:\(d(n)=\sum_{d|n}1=\sum_{i=1}^{n}(d|n)=(c_1+1)(c_2+1)...(c_m+1)\)

性質:

  1. \(d(n)=\frac{d(n/p)f(n)}{f(n/p)}\)(f(n)表示其最小質因子的個數+1,由定義感性理解易證)

  2. \((d*I)(n)=\sum_{d|n}d(d)=\prod_{i=1}^{m}\frac{(c_i+2)(c_i+1)}{2}\)

證明:

由積積得積設\(f(n)=\sum_{d|n}d(d)=f(p_1^{c_1})...f(p_m^{c_m})\),對於其中一項\(f(p_i^{c_i})=1+2+3+...+c_m+1=\frac{(c_m+2),(c_m+1)}{2}\),合並易證。

  1. \(\sum_{i=1}^nd(i)=\sum_{i=1}^n[\frac{n}{i}]\)

證明:

對於單個約數來看,每個約數\(i\)\([\frac{n}{i}]\)個。

  1. \(d=I*I\)

證明:

\((I*I)(n)=\sum_{d|n}1\),不難得知,每個約數都被統計了一次。故得證。

  1. \(d(ij)=\sum_{x|i}\sum_{y|j}(gcd(x,y)==1)\)

證明:

考慮函數映射,對於\(ij\)中一個約數\(k\)而言,它由唯一分解定理有\(p^c\)這個質因子的次方,設\(i\)\(p^a\),\(j\)\(p^b\),有以下的映射方式:

  1. \(a\ge c\),從i中選擇所需質因子。
  2. \(a< c\),從j中選擇\(p^{c-a}\)

以此對於\(ij\)的一個約數\(k\)我們能夠生成唯一一對\(x,y\),而對於唯一一對\(x,y\)我們能唯一還原成一個\(k\),所以我們可以說它們是一一對應的,於是得證。

約數和

符號:\(\sigma\)

表達式:\(\sigma(n)=\sum_{d|n}d=\sum_{d=1}^n(d|n)d=\prod_{i=1}^m\sum_{j=0}^{c_i}p_i^{c_j}=\)

\((1+p_1+...+p_1^{c_1})(1+p_2+...+p_2^{c_2})...(1+p_m+...+p_m^{c_m})\)

性質:

  1. \(\sigma(n)=\frac{\sigma(n/p)f(n)}{f(n/p)}=\prod_{i=0}^{c_1}p_i^{i}\),由定義感性理解易證)

  2. \(\sum_{d|n}\sigma(d)=\prod_{i=1}^{m}\sum_{j=0}^{c_i}p_i^j(c_i-j+1)\)

證明:
由積積得積設\(f(n)=\sum_{d|n}\sigma(d)=\prod_{i=1}^mf(p_i^{c_i})\),對於其中一項\(f(p_i^{c_i})=1+1+p_i+1+p_i+p_i^2+...1+...+p_i^{c_i}=\)

\((c_i+1)+c_ip_i+...+p_i^{c_i}\),合並即得證。

  1. \(\sigma=I*id\)

證明:
\((I*id)(n)=\sum_{d|n}d\),此時不難得知每個約數的值都被累加了一次,故得證。

Mobius 函數

符號:\(\mu\)

表達式:

\(\mu(n)=0\)(有相同質因子)

\(\mu(n)=1\)(有偶數個不同質因子)

\(\mu(n)=-1\)(有奇數個不同質因子)

性質:

\(\sum_{d|n}\mu(d)=(n==1)\ or\ \mu*I=\epsilon\)

證明:

法一:數學歸納

  1. 倒推(唯一分解定理+積性拆分)

由積積得積設\(f(n)=\sum_{d|n}\mu(d)=\prod_{i=1}^{m}f(p_i^{c_i})\),對於其中一項有\(f(p_i^{c_i})=\mu(1)+\mu(p_i)+\mu(p_i^2)+...+\mu(p_i^{c_i})=0\),特別地,當n=1,不能進行質因數分解,此時結果為1,所以得證。

  1. 順推

假設\(\sum_{d|n}\mu(d)\)中該n以前所有數滿足條件,考慮給n乘一個質數p,只是給原式多了一個取負的部分,而對於所有質數顯然滿足條件,特別的當n=1,不滿足條件,等於1,故得證。

思路創造者:lsy

法二:容斥原理

不妨設n的質因數有c個,對於選取的d質因子次數為0,有\(C_c^0\),而次數為1,\(C_c^1\)...,則有

\[\sum_{d|n}\mu(d)=C_n^0-C_n^1+C_n^2-...+(-1)^nC_n^n \]

由上標公式易知該式只有當n=1時為1,其余情況為0,故得證。

\(\sum_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n}or\ id*\mu=\varphi\)

證明:

法一(容斥):

不難得知

\[\sum_{d|n}\frac{\mu(d)n}{d}=1-\sum_{i=1}^m\frac{n}{p_i}+\sum_{1\leq i<j \leq m}\frac{n}{p_ip_j}-\sum_{1\leq i<j <k\leq m}\frac{n}{p_ip_jp_k}+ \]

\[...+(-1)^m\frac{n}{\prod_{i=1}^mp_i} \]

由容斥原理不難得知\(\sum_{d|n}\frac{\mu(d)n}{d}=\varphi(n)\),即\(\sum_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n}\),故得證。

法二(狄利克雷卷積):

注意到\((\mu*id)(n)=\sum_{d|n}\mu(d)id(n/d)=\sum_{d|n}\frac{\mu(d)n}{d}\),且有

\[\varphi*I=id \]

\[\varphi*I*\mu=id*\mu \]

\[\varphi*\epsilon=id*\mu \]

\[\varphi=id*\mu \]

\[\sum_{d|n}\frac{\mu(d)n}{d}=\varphi(n) \]

所以

\[\sum_{d|n}\frac{\mu(d)}{d}=\frac{\varphi(n)}{n} \]

\(\mu^2(i)\)實際意義為一個數的約數中不含一個平方數。

\(\mu(ij)=\mu(i)\mu(j)(gcd(i,j)==1)\)

線性篩積性函數

形式:積性函數如\(\sum_{d|n}f(d)g(d)\)

埃式篩

時間復雜度:\(O(nlog(n))\)(剪支可以有\(O(nloglog(n))\))

方法

  1. 邊處理出質數,邊利用積性函數,篩出前面結果
  2. 對於式子中一個部分考慮哪些會被它作出貢獻

歐式篩

時間復雜度:\(O(n)\)

基本思路:

  1. 證明該函數為積性函數。
  2. 對於互質更新直接利用積性。
  3. 解決\(f(n)=f(n/p)\times ?(p|n,p^2|n)\),通常對最小質因子進行考慮。
    解決辦法:1.利用已學知識,寫出通項公式 2.唯一分解定理+積性拆分

Mobius反演

約數型

\[F(n)=\sum_{d|n}f(d)\Rightarrow f(n)=\sum_{d|n}\mu(d)F(n/d)= \]

\[\sum_{d|n}\mu(n/d)F(d) \]

證明:

1.容斥:

\(f(d)\)抽象成d這個約數的性質,\(F(n)\)即n的所有約數的性質之和,故要求\(f(n)\),我們先把\(F(n)\)減去\(F(d)\),d正好比n少一個質因子,而系數正好為\(\mu(n/d)\),但是這樣減多了,於是加回\(F(d)\),此處d正好比n少兩個不同質因子,系數也正好為\(\mu(n/d)\),...,於是得證。

2.代數:

\[\sum_{d|n}\mu(d)F(n/d)=\sum_{d|n}\mu(d)\sum_{i|\frac{n}{d}}f(i)=\sum_{i=1}^{n}f(i)\sum_{i|\frac{n}{d},d|n}\mu(d) \]

\[=\sum_{i=1}^{n}f(i)\sum_{d|\frac{n}{i}}\mu(d)=\sum_{i=1}^{n}f(i)(\frac{n}{i}==1)=f(n) \]

3.狄利克雷卷積:

注意到\(F=f*I,\mu*i=\epsilon\),所以

\[F=f*I \]

\[F*\mu=f*I*\mu \]

\[F*\mu=f*\epsilon \]

\[F*\mu=f \]

\[f(n)=\sum_{d|n}\mu(d)F(n/d) \]

倍數型:

\[F(n)=\sum_{n|d}f(d)\Rightarrow f(n)=\sum_{n|d}\mu(d/n)F(d)= \]

\[\sum_{d|n}\mu(d)F(d/n) \]

證明:

1.代數:

\[\sum_{n|d}\mu(d/n)F(d)=\sum_{n|d}\mu(d/n)\sum_{d|i}f(i)= \]

\[\sum_{n|i}f(i)\sum_{n|d,d|i}\mu(d/n)=\sum_{n|i}f(i)\sum_{d|\frac{n}{i}}\mu(d)= \]

\[\sum_{n|i}f(i)(\frac{n}{i}==1)=f(n) \]

2.狄利克雷卷積:

考慮已經證過約數型的式子,而狄利克雷卷積不適合倍數型的式子,考慮分數倒置,設\(F'(n)=F(\frac{1}{n}),f'(n)=f(\frac{1}{n}),F(n)=\sum_{d|n}f(d)\),故有:

\[F'(n)=F(\frac{1}{n})=\sum_{d|\frac{1}{n}}f(d)=\sum_{n|\frac{1}{d}}f(d)=\sum_{n|\frac{1}{d}}f'(\frac{1}{d})=\sum_{n|d}f'(d) \]

\[f(n)=\sum_{d|n}F(d)\mu(n/d) \]

\[f(\frac{1}{n})=\sum_{n|\frac{1}{d}}F(d)\mu(1/nd) \]

\[f(\frac{1}{n})=\sum_{n|d}F(\frac{1}{d})\mu(d/n) \]

\[f'(n)=\sum_{n|d}F'(d)\mu(d/n) \]

故得證

輔助公式

\[\sum_{d|gcd(i,j)}\mu(d)=(gcd(i,j)==1) \]

證明:

代入Mobius函數的卷\(I\)的性質即可。

練習

杜教篩

明確作用:線性篩的優化

基本表達式:

\(f,g,h\)均為積性函數並滿足\(h=f*g\)\(f\)為所求,並設\(s(n)=\sum_{i=1}^nf(i)\),有

\[g(1)s(n)=\sum_{i=1}^nh(i)-\sum_{d=2}^ng(d)s(n/d) \]

證明:

\[\sum_{i=1}^nh(i)=\sum_{i=1}^n\sum_{d|i}f(i/d)g(d)=\sum_{d=1}^{n}\sum_{i=1}^n(d|i)f(i/d)g(d)= \]

\[\sum_{d=1}^{n}g(d)\sum_{i=1}^{[n/d]}f(i)=g(1)\sum_{i=1}^nf(i)+\sum_{d=2}^{n}g(d)\sum_{i=1}^{[n/d]}f(i)= \]

\[g(1)s(n)+\sum_{d=2}^{n}g(d)\sum_{i=1}s(n/d) \]

\[g(1)s(n)=\sum_{i=1}^nh(i)-\sum_{d=2}^ng(d)s(n/d) \]

故得證

實例:

  1. \(s(n)=\sum_{i=1}^n\mu(i)\)

解:

注意到\(\mu*I=\epsilon\),所以所需杜教篩式子為\(I(1)s(n)=\sum_{i=1}^n\epsilon(i)-\sum_{d=2}^nI(d)s(n/d)\),化簡即\(s(n)=1-\sum_{d=2}^ns(n/d)\),故問題解決。

  1. \(s(n)=\sum_{i=1}^n\varphi(i)\)

解:

注意到\(\varphi*I=id\),所以杜教篩式子為\(I(1)s(n)=\sum_{i=1}^nid(i)-\sum_{d=2}^nI(d)s(n/d)\),即\(s(n)=\frac{(1+n)n}{2}-\sum_{d=2}^ns(n/d)\),故問題得解。

  1. \(s(n)=\sum_{i=1}^ni\varphi(i)\)

解:

此題無直接性質,故考慮待定函數,設\(h=f*g,f(n)=n\varphi(n)\),有\(h(n)=\sum_{d|n}d\varphi(d)g(n/d)\),而要簡化式子,自然想到\(\frac{n}{d}d=n\),於是猜\(g=id\),故\(h(n)=n\sum_{d|n}\varphi(n)=n^2\),所以所求杜教篩式子為\(id(1)s(n)=\sum_{i=1}^ng(i)-\sum_{d=2}^nid(d)s(n/d)\),化簡即\(s(n)=\frac{n(n+1)(2n+1)}{6}-\sum_{d=2}^nd\times s(n/d)\),故問題解決。

套路總結

約數結論小結

  1. \(gcd(a,b)\leq|a-b|(a!=b)\)
  2. 積和互質結論:\(gcd(a,b)=1\Leftrightarrow gcd(a+b,ab)=1\)
  3. \(gcd(a,b,c)=gcd(gcd(a,b),c)\)
  4. \(gcd(ak,bk,c)=gcd(k\times gcd(a,b),c)\)
  5. gcd前提判斷

約數計數問題

三種角度:

\[num \]

\[\swarrow\ \ \ \ \ \ \ \ \ \ \ \ \ \ \nwarrow \]

\[divisor\ \ \rightarrow \ \ \ prime\ factor \]

三大思路:

Mobius反演\(\Longleftrightarrow\)容斥原理,以及實際意義(如\(\sum\),一定要注重)

等式變換:

對應相等\(\Longleftrightarrow\)約數拆分
(反證法,分數反證,因式分解)

杜教篩

  1. 看是否有現成積性函數
  2. 尋找積性函數性質
  3. 待定函數法確定積性函數

式子證明套路:

數列通項公式

  1. 構造等差
  2. 擴大做差
  3. 幾何意義

狄利克雷卷積:

  1. 尋找積性函數
  2. 尋找積性性質
  3. 列出積性等式
  4. 試圖抵消並配出所需

(對於倍數型式子可采取分數倒置的方法)

映射:

  1. 尋找映射對象
  2. 尋找映射方式
  3. 證明一一對應

適用范圍:函數的證明

質因數分解

注意1不能質因數分解的情況

唯一分解定理+積性拆分
  1. 試圖證明積性(利用積積得積,或暴力證明)。
  2. 數學歸納唯一分解定理分解,對單個質因子次方考慮。

容斥

  1. 明確被容斥對象
  2. 尋找容斥對象(注意前后正反都可以)
  3. 遞推尋找加加減減關系

數學歸納

  1. 明確狀態
  2. 轉移方程(順退,倒推)
  3. 邊界

中等組合計數與數據結構

  1. 不離線白不離線。
  2. 要求某項小於某數,保留該項,排序選擇。
  3. 什么變,維護什么。

式子變換套路

容斥

  1. 盡可能把式子除成質數或互質形式
  2. 遇到有限制的容斥,可以采取更改容斥范圍的方法

Mobius反演

三種形式:約數型,倍數型,輔助公式

  1. \(\sum_{i=a}^b\sum_{j=c}^dgcd(i,j)==k\),Monius反演常見標志。
  2. 半個Mobius反演。
  3. 默認\(a<b\)簡化問題。
  4. 單個gcd枚舉提前。
  5. \(\sum_{d|gcd(i,j)}\mu(d)=(gcd(i,j)==1)\)可一定程度上代替Mobius反演。
  6. 整除分塊前放。
  7. \(\sum_{k|d}\sum...\sum(a==d)=\sum...\sum(k|a)\)
  8. 輔助公式解決三元環問題,注意三元環形式要作為整體前放。

\(\sum\)變換

可維護
  1. \(\sum_{n|d}f(d/n)\),實質是為了追求倍數型維護.
  2. \(\sum_{d|n}f(n/d)\),實質積性函數.
變式
  1. \(\sum(a+b)=\sum a+\sum b\),sigma的可拆分性
  2. \([[a/b]/c]=[\frac{a}{bc}]\)
  3. \(\sum_{d|i}\)枚舉提前,或換元消判。
  4. \(\sum_{d|n}f(d)g(n/d)=\sum_{d|n}f(n/d)g(d)\)兩種形式雖等價,但推式難度有差別。
  5. 縮小枚舉\(i=i'k,\sum_{i=a}^b(k|i)i=\sum_{i=[\frac{a-1}{k}]+1}^{\frac{b}{k}}ik\)
  6. 放大枚舉\(i'=ik,\sum_{i=a}^bik=\sum_{i=ak,k|i}^{bk}i\)
  7. \(\sum_{i=1}^a\sum_{j=1}^b[a/i][b/j]\)為約數函數前綴和。
  8. \(\sum_{i=1}^a\sum_{j=1}^bij\)為兩次等差。
  9. \(\sum_{i=1}^af(ix)\)可以動態數組維護。

\(\prod\)變換

  1. \(\prod_{?} d=d^{\sum_{?}}\)
  2. \(d^{\sum_{?}?}=\prod_{?}d^{?}\)
  3. \(\prod_{i=1}^ni=n!\)

其他

  1. 能代就代。
  2. 最后的殺手鐧-打表分塊(時間復雜度通常很接近\(10^8\)時用救命)

練習

  1. 定義一個函數\(f(n)\),把n進行質因數分解,得到\(n=\prod_{i=1}^mp_i^{c_i}\),函數值即對於每一個\(p_i^{c_i}\),如果次數等於1,則累乘-2,次數等於2,則累乘1,否則累乘0的值,如\(f(50)=1\times(-2)=-2\),現在有些詢問,詢問組數為t\((t\leq 100)\),每次詢問\(\sum_{i=1}^nf(n)\)的值\((n\leq 10^{10})\)

  2. 有t組詢問,詢問\(\sum_{i=1}^n\sum_{j=1}^m(gcd(i+j,ij)==1)\),\(n,m\leq 10^5,t\leq 10^5\)

  3. \(yyb=10^9+7\)\(f(n)\)表示在一\(n\times n\)的棋盤上,第i列障礙物的位置為\(i\times yyb\ mod\ (n+1)\),現在有n個棋子放入棋盤,要求任意一行一列只有一顆以下的棋子,的方案數,現在給出T組詢問,每組詢問詢問\([\prod_{i=1}^n\prod_{j=1}^mf(gcd(i,j))]\times [\prod_{x=1}^n\prod_{y=1}^mxy]\ mod\ yyb,\)\(T≤1000,1≤n,m≤10^6\)

  4. t組詢問,求\(\sum_{i=1}^n\sum_{j=1}^md(i)d(j)gcd(i,j)mod\ 10^9+7,t\leq 10^4,n,m\leq 10^5\),

尾聲

恭喜您,您已經達到了我的Mobius反演的水平,但願我的微薄之力,能助你一臂之力,君當更AK,吾獨AFO!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM