莫比乌斯反演做题小结

莫比乌斯反演做题小结

Mophues

求有多少数对\((a,b)\)满足\(1 \le a \le n\)\(1 \le b \le m\),且\(\gcd(a,b)\)的质因子个数\(\le p\)。T组询问

\(1\le n,m\le 5 \times 10^5\),\(1 \le T \le 5000\)

\[\sum_{t=1}^{p}\sum_{a=1}^n\sum_{b=1}^{m}[\gcd(a,b)=t] \]

\[\sum_{t=1}^{p}\sum_{a=1}^{n/t}\sum_{b=1}^{m/t}[\gcd(a,b)=1] \]

\[\sum_{t=1}^{p}\sum_{a=1}^{n/t}\sum_{b=1}^{m/t}\sum_{d|\gcd(a,b)}\mu(d) \]

\[\sum_{d=1}^n\mu(d)\sum_{t=1}^{p}\sum^{n/dt}_{a=1}\sum^{m/dt}_{b=1}1 \]

\[\sum_{d=1}^n\mu(d)\sum_{t=1}^{p}{\left\lfloor\frac{n}{dt}\right\rfloor}{\left\lfloor\frac{m}{dt}\right\rfloor} \]

\(D=dt\)

\[\sum_{d=1}^n\mu(d)\sum_{t=1}^{p}{\left\lfloor\frac{n}{D}\right\rfloor}{\left\lfloor\frac{m}{D}\right\rfloor} \]

\[\sum_{D=1}^n{\left\lfloor\frac{n}{D}\right\rfloor}{\left\lfloor\frac{m}{D}\right\rfloor}\sum_{d|D}mu(d) \]

因为质因子个数有限制,所以设\(f[i][j]\)表示质因子数目小于等于\(j\)时的前\(i\)项之和

数论分块即可

时间复杂度$$O(T\sqrt{n}+nlogn)$$

DZY loves Math

定义\(f(x)\)表示\(x\)的质因子的最大次数,求\(\sum_{i=1}^n\sum_{j=1}^mf(\gcd(i,j))\)的值,多组询问

\(T \le 10^4\)\(1\le n,m \le 10^7\)

\[\sum_{i=1}^n\sum_{j=1}^mf(\gcd(i,j)) \]

\[\sum_{d=1}^{n}\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=d]f(d) \]

\[\sum_{d=1}^{n}\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}f(d)[\gcd(i,j)=1] \]

\[\sum_{d=1}^{n}\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}f(d)\sum_{k|\gcd(i,j)}\mu(k) \]

\[\sum_{k=1}^{n}\mu(k)\sum_{d=1}^{n}\sum_{i=1}^{n/dk}\sum_{j=1}^{m/dk}f(d) \]

\[\sum_{k=1}^{n}\mu(k)\sum_{d=1}^{n}f(d)\sum_{i=1}^{n/dk}\sum_{j=1}^{m/dk}1 \]

\[\sum_{k=1}^{n}\mu(k)\sum_{d=1}^{n}f(d){\left\lfloor\frac{n}{dk}\right\rfloor}{\left\lfloor\frac{m}{dk}\right\rfloor} \]

\(T=dk\)

\[\sum_{k=1}^{n}\mu(k)\sum_{d=1}^{n}f(d){\left\lfloor\frac{n}{T}\right\rfloor}{\left\lfloor\frac{m}{T}\right\rfloor} \]

\[\sum_{T=1}^{n}{\left\lfloor\frac{n}{T}\right\rfloor}{\left\lfloor\frac{m}{T}\right\rfloor}\sum_{k|T}\mu(k)f(T/k) \]

经过分析,可以知道\(F(T)=\sum_{k|T}f(T/k)\mu(k)\)当且仅当\(F((p_1p_2...p_k)^t)=(-1)^{k+1}\),其他情况都是0

对于 \(\sum_{k|T}^{n}\mu(k)f(T/k)\),可以线性筛处理,前面部分数论分块计算即可

时间复杂度\(O(T \times \sqrt n)\)

JZPTAB

\(\sum_{i=1}^{n}\sum_{j=1}^{m}lcm(i,j)\)答案对\(10^8+9\)取模,多组询问

\(1\le n,m\le 10^7\) \(1 \le T \le 5 \times 10^4\)

\[\sum_{i=1}^{n}\sum_{j=1}^mlcm(i,j) \]

\[\sum_{i=1}^{n}\sum_{j=1}^m\frac{ij}{\gcd(i,j)} \]

\[\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^m\frac{ij}{d}[\gcd(i,j)=d] \]

\[\sum_{d=1}^{n}\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}{dij}[\gcd(i,j)=1] \]

\[\sum_{d=1}^{n}\sum_{i=1}^{n/d}\sum_{j=1}^{m/d}{dij}\sum_{k|\gcd(i,j)}\mu(k) \]

\[\sum_{d=1}^{n}{d}\sum_{k=1}^{n}\mu(k) \times k^2\sum_{i=1}^{n/dk}{i}\sum_{j=1}^{m/dk}{j} \]

\(f(x)=\sum_{i=1}^{x}i\)

\[\sum_{d=1}^{n}{d}\sum_{k=1}^{n}\mu(k) \times k^2 \times f({\left\lfloor\frac{n}{dk}\right\rfloor}) \times f({\left\lfloor\frac{m}{dk}\right\rfloor}) \]

\(T=dk\)

\[\sum_{d=1}^{n}{d}\sum_{k=1}^{n}\mu(k) \times k^2 \times f({\left\lfloor\frac{n}{T}\right\rfloor}) \times f({\left\lfloor\frac{m}{T}\right\rfloor}) \]

\[\sum_{T=1}^{n}f({\left\lfloor\frac{n}{T}\right\rfloor}) \times f({\left\lfloor\frac{m}{T}\right\rfloor})\sum_{d|T}\mu(d) \times d \times T \]

观察得到\(f(i)\)可以直接计算,\(g(T)=(\sum_{d|T}\mu(d) \times d \times T)\)是积性函数,可以线性筛预处理

现在,原式变成了

\[\sum_{T=1}^{n}f({\left\lfloor\frac{n}{T}\right\rfloor}) \times f({\left\lfloor\frac{m}{T}\right\rfloor}) \times g(T) \]

显然可以数论分块,可以做到\(O(T\sqrt n+n)\)

数表

\(F(i,j)\)表示能同时整除\(i\)\(j\)的所有自然数之和

\(\sum_{i=1}^{n_k}\sum_{j=1}^{m_k} F(i,j)[F(i,j)\le a_k]\)\(2^{31}\)取模的结果

\(1 \le Q \le 2 \times 10^4\)\(1 \le n,m \le 10^5\)\(1 \le a_i \le 10^9\)

先看看\(F(i,j)\)函数的本质,容易发现\(F(i,j)\)\(\gcd(i,j)\)的约数和

那么\(F(i,j)=\sigma (\gcd(i,j))\)

假装没有\(a\)的限制

\[\sum_{i=1}^{n}\sum_{j=1}^{m} \sigma(\gcd(i,j)) \]

\[\sum_{d=1}^n\sum_{i=1}^{n}\sum_{j=1}^{m} \sigma(d)[\gcd(i,j)=d] \]

\[\sum_{d=1}^n\sum_{i=1}^{n/d}\sum_{j=1}^{m/d} \sigma(d)[\gcd(i,j)=1] \]

\[\sum_{d=1}^n\sigma(d)\sum_{i=1}^{n/d}\sum_{j=1}^{m/d} \sum_{k|\gcd(i,j)}\mu(k) \]

\[\sum_{d=1}^n\sigma(d)\sum_{k=1}^n\mu(k)\sum_{i=1}^{n/dk}\sum_{j=1}^{m/dk} 1 \]

\[\sum_{d=1}^n\sigma(d)\sum_{k=1}^n\mu(k){\left\lfloor\frac{n}{dk}\right\rfloor}{\left\lfloor\frac{m}{dk}\right\rfloor} \]

\(T=dk\)

\[\sum_{d=1}^n\sigma(d)\sum_{k=1}^n\mu(k){\left\lfloor\frac{n}{T}\right\rfloor}{\left\lfloor\frac{m}{T}\right\rfloor} \]

\[\sum_{T=1}^{n}{\left\lfloor\frac{n}{T}\right\rfloor}{\left\lfloor\frac{m}{T}\right\rfloor}\sum_{d|T}\sigma(d)\mu(T/d) \]

线性筛预处理\(\sum_{d|T}\sigma(d)\mu(T/d)\),对于每个询问可以\(O(\sqrt n+\sqrt m)\)计算

考虑\(a_i\)的贡献,设\(g(T)=\sum_{d|T}\sigma(d)\mu(T/d)\) ,可以发现当\(\sigma(d) \le a_i\)时才会对\(g(T)\)产生贡献

离线,把\(a\)从小到大排序,枚举询问的时候,动态修改\(g(T)\)的值,总共需要更改的个数是调和级数

时间复杂度\(O(q\sqrt n \ logn+n\ log^2n)\)

简单的数学题

\((\sum_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j))\ mod\ p\)

\(1\le n\le 10^{10}\),\(5 \times 10^8 \le p \le 1.1 \times 10^9\)\(p\)是质数

\[\sum_{i=1}^{n}\sum_{j=1}^{n}ij\gcd(i,j) \]

\[\sum_{i=1}^{n}\sum_{j=1}^{n}ij\sum_{k|i,k|j}\varphi(k) \]

\[\sum_{k=1}^{n}\varphi(k)\sum_{k|i}\sum_{k|j}ij \]

\[\sum_{k=1}^n \varphi(k) \times k^2 \times (\sum^{n/k}_{i=1}i)^2 \]

\({\left\lfloor\dfrac{n}{k}\right\rfloor}=D\)

\[\sum_{k=1}^n \varphi(k) \times k^2 \times (\frac{D(D+1)}{2})^2 \]

\[\sum_{k=1}^n \varphi(k) \times k^2 \times \frac{D^2(D+1)^2}{4} \]

\[\frac{1}{4}\sum_{k=1}^n \varphi(k) \times k^2 \times {D^2(D+1)^2} \]

\({\left\lfloor\dfrac{n}{k}\right\rfloor}\)数论分块

对于\(\varphi(k) \times k^2\),可以杜教筛求前缀和。

Surprise me!

给出一棵树和一个\(1...n\)的排列,求 \(\frac {1}{n(n-1)}\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(a_ia_j) \times dist(i,j)\) 的值

\(1 \le n \le 2 \times 10^5\)

\[\frac {1}{n(n-1)}\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(a_ia_j) \times dist(i,j) \]

因为\(ai\)\(1...n\) 的排列,所以设\(p_{a_i}=i\)

\[\frac {1}{n(n-1)}\sum_{i=1}^{n}\sum_{j=1}^{n}\varphi(ij) \times dist(p_i,p_j) \]

\[\frac {1}{n(n-1)}\sum_{i=1}^{n}\sum_{j=1}^{n}\frac{\varphi(i)\varphi(j)\gcd(i,j)}{\varphi(\gcd(i,j))} \times dist(p_i,p_j) \]

\[\frac {1}{n(n-1)}\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}[\gcd(i,j)=d]\frac{\varphi(i)\varphi(j)d}{\varphi(d)} \times dist(p_i,p_j) \]

\[\frac {1}{n(n-1)}\sum_{d=1}^{n}\sum_{i=1}^{n/d}\sum_{j=1}^{n/d}[\gcd(i,j)=1]\frac{\varphi(id)\varphi(jd)d}{\varphi(d)} \times dist(p_{id},p_{jd}) \]

\[\frac {1}{n(n-1)}\sum_{d=1}^{n} \frac{d}{\varphi(d)} \sum_{i=1}^{n/d}\sum_{j=1}^{n/d}\sum_{k|\gcd(i,j)}\mu(k)\varphi(id)\varphi(jd)dist(p_{id},p_{jd}) \]

\[\frac {1}{n(n-1)}\sum_{d=1}^{n} \frac{d}{\varphi(d)} \sum_{k=1}^{n/d}\mu(k)\sum_{i=1}^{n/dk}\sum_{j=1}^{n/dk}\varphi(idk)\varphi(jdk)dist(p_{idk},p_{jdk}) \]

\(T=dk\)

\[\frac {1}{n(n-1)}\sum_{d=1}^{n} \frac{d}{\varphi(d)} \sum_{k=1}^{n/d}\mu(k)\sum_{i=1}^{n/dk}\sum_{j=1}^{n/dk}\varphi(Tk)\varphi(Tk)dist(p_{iT},p_{jT}) \]

\[\frac {1}{n(n-1)}\sum_{T=1}^{n}\sum_{d|T} \frac{d \times \mu(T/d)}{\varphi(d)} \sum_{i=1}^{n/T}\sum_{j=1}^{n/T}\varphi(Tk)\varphi(Tk)dist(p_{iT},p_{jT}) \]

线性筛出$\sum_{d|T} \frac{d \times \mu(T/d)}{\varphi(d)} $

现在部分就是给定一棵树,求出\(\sum_{i=1}^{n}\sum_{j=1}^{n}b_ib_jdist(i,j)\)

考虑建虚树,总点数是调和级数,\(O(nlogn)\)级别的

那么树形dp即可

时间复杂度$ O(nlog^2n) $

posted @ 2019-02-20 07:56  wh_ZH  阅读(272)  评论(0编辑  收藏  举报