首页 > 其他分享 >莫比乌斯反演

莫比乌斯反演

时间:2024-07-28 20:08:05浏览次数:6  
标签:lfloor frac ast 乌斯 sum rfloor mu 反演 莫比

莫比乌斯反演

前置芝士:数论分块

求 \(\sum\limits_{i=1}^n\lfloor\frac{n}{i}\rfloor\),其中 \(n\le10^{12}\)。

可以发现,\(\lfloor\frac{n}{i}\rfloor\) 最多只有 \(\sqrt{n}\) 种取值,所以只需要枚举每种取值对应 \(i\) 的取值范围即可。

ll ans = 0;
for(int i = 1,j;i <= n;i = j+1)
{
    j = n/(n/i);
    ans += (n/i)*(j-i+1);
}

积性函数:

如果函数 \(f\) 满足 \(\forall a,b,\gcd(a,b)=1,f(ab)=f(a)f(b)\),则 \(f\) 为积性函数。

  • 欧拉函数:\(\varphi(n)\),即 \(1\) 到 \(n\) 中与 \(n\) 互质的个数。
  • 莫比乌斯函数:\(\mu(i)=\begin{cases}1&n=1\\(-1)^k&n=p_1p_2\ldots p_k\\ 0&otherwise\end{cases}\)
  • 因子函数:\(d(n)\),即 \(n\) 的因子个数。
  • 除数函数:\(\sigma(n)=\sum\limits_{d\mid n}d\),即 \(x\) 的因子之和。

完全积性函数:

如果函数 \(f(n)\) 满足 \(\forall a,b,f(ab)=f(a)f(b)\),则 \(f(n)\) 为完全积性函数。

  • 常数函数:\(I(n)=1\)
  • 恒等函数:\(Id(n)=n\)
  • 单位函数:\(\varepsilon(n)=[n=1]\)

狄利克雷卷积:

\((f\ast g)(n)=\sum\limits_{d\mid n}f(d)g(\frac{n}{d})\)

性质:

  • 交换律:\(f\ast g=g\ast f\)

  • 结合律:\((f\ast g)\ast h=f\ast(g\ast h)\)

  • 分配律:\((f+g)\ast h=f\ast h+f\ast h\)

  • 如果 \(f,g\) 是积性函数,则 \(f*g\) 也是积性函数。比如:

    • \(Id\ast I=\sigma\)
    • \(I\ast I=d\)
    • \(\varphi\ast I=Id\)
    • \(\mu\ast I=\varepsilon\)

    下面是根据上面推出来的:

    • \(\varepsilon\ast f=f\),即 \(\varepsilon\) 与任何函数进行狄利克雷卷积后都是函数本身;

    • \(\varphi\ast d=\varphi\ast I\ast I=Id\ast I=\sigma\)

    • \(\because\varepsilon\ast Id=Id \therefore\mu\ast I\ast Id=\varphi\ast I \therefore\mu\ast Id=\varphi\)

    • \(\mu\ast \sigma=\mu\ast Id\ast I=\varepsilon\ast Id=Id\)

莫比乌斯反演:\([n=1]=\sum\limits_{d\mid n}\mu(d)\)

其实莫比乌斯反演还有一种形式:\(g(n)=\sum\limits_{d\mid n}f(d)\leftrightarrow f(n)=\sum\limits_{d\mid n}\mu(d)d(\frac{n}{d})\),也可以写成:\(f\ast I=g\leftrightarrow f=g\ast\mu\)。


证明:\(\mu\ast I=\varepsilon\)

当 \(n=1\) 时显然成立,当 \(n>1\) 时,设 \(n=p_1^{c_1}p_2^{c_2}\ldots p_k^{c_k}\),由于有平方因子的数的 \(\mu\) 为 \(0\),所以只需要证 \(n=p_1p_2\ldots p_k\) 时 \(\sum\limits_{d\mid n}\mu(\frac{n}{d})=0\)成立即可。

\[\begin{align} \mu\ast I &= \sum_{d\mid n}\mu(\frac{n}{d}) \\ &=\mu(1)+\mu(p_1)+\ldots +\mu(p_k)+\mu(p_1p_2)+\mu(p_1p_3)+\ldots +\mu(p_{k-1}p_k)+\ldots +\mu(p_1p_2\ldots p_k) \\ &= \sum_{i=0}^k(-1)^i\binom{k}{i} \\ &= 0 \end{align} \]

欧拉反演:\(n=\sum\limits_{d\mid n}\varphi(d)\)

证明:\(\varphi\ast I=Id\)

设 \(n=p_1^{c_1}p_2^{c_2}\ldots p_k^{c_k}\),因为 \(\varphi\) 是积性函数,则只需要证 \(n'=p^c\) 时成立即可。

\[\begin{align} \varphi\ast 1&=\sum_{d\mid n}\varphi(\frac{n}{d}) \\ &=\sum_{i=0}^c\varphi(p^i) \\ &=1+p^0\times(p-1)+p^1\times(p-1)+\ldots +p^{c-1}\times(p-1) \\ &=p^c \\ &=Id \end{align} \]

线性筛 \(\varphi\) 和 \(\mu\)

线性筛分有重复因子和没重复因子两种情况,直接分情况讨论即可。

int p[N],phi[N],mu[N],cnt;
bool isp[N];
ll sphi[N],smu[N];
void init()
{
    phi[1] = mu[1] = 1;
    for(int i = 2;i < N;i++)
    {
        if(!isp[i]){p[++cnt] = i;phi[i] = i-1;mu[i] = -1;}
        for(int j = 1;j <= cnt&&p[j]*i < N;j++)
        {
            int now = i*p[j];
            vis[now] = 1;
            if(i%p[j]==0)
            {
                phi[now] = phi[i]*p[j];mu[now] = 0;
                break;
            }
            phi[now] = phi[i]*(p[j]-1);mu[now] = -mu[i];
        }
    }
    for(int i = 1;i < N;i++)
        sphi[i] = sphi[i-1]+phi[i],smu[i] = smu[i-1]+mu[i];
}

例题

  1. 最基本的应用

求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^m[\gcd(i,j)=1]\) 和 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^m\gcd(i,j)\),\(T\) 组数据,\(n,m\le 2\times10^6,T\le 1000\)

题太多了,甚至有十倍经验

直接莫比乌斯反演(以下默认 \(n\le m\)):

\[\begin{align} \sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=1]&=\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid i,d\mid j}\mu(d) \\ &=\sum_{d=1}^n\mu(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}1 \\ &=\sum_{d=1}^n\mu(d)\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor \end{align} \]

\[\begin{align} \sum_{i=1}^n\sum_{j=1}^m\gcd(i,j)&=\sum_{i=1}^n\sum_{j=1}^m\sum_{d\mid i,d\mid j}\varphi(d) \\ &=\sum_{d=1}^n\varphi(d)\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}1 \\ &=\sum_{d=1}^n\varphi(d)\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor \end{align} \]

发现式子中只有 \(\lfloor\frac{n}{d}\rfloor\) 和 \(\lfloor\frac{m}{d}\rfloor\),直接数论分块即可,时间复杂度 \(\mathcal{O}(n+T\sqrt{n})\)。

ll ans1 = 0,ans2 = 0;
for(int i = 1,j;i <= n;i = j+1)
{
    j = min(n/(n/i),m/(m/i));
    ans1 += (smu[j]-sum[i-1])*(n/i)*(m/i);
    ans2 += (sphi[j]-sphi[i-1])*(n/i)*(m/i);
}

总结:莫比乌斯反演最重要的就是处理和式,经常推不出式子了就尝试一下交换和式

  1. P2257 YY的GCD

求 \(\sum\limits_{i=1}^n \sum\limits_{j=1}^m[\gcd(i,j)\in prime]\), \(T\) 组数据,\(n,m\le 10^7,T\le 10^4\)。

考虑枚举 \(\gcd(i,j)\):

\[\begin{align} \sum_{i=1}^n \sum_{j=1}^m [\gcd(i,j)\in prime] &= \sum_{p\in prime}\sum_{i=1}^n \sum_{j=1}^m[\gcd(i,j)=p] \\ &= \sum_{p\in prime}\sum_{i=1}^{\lfloor\frac{n}{p}\rfloor} \sum_{j=1}^{\lfloor\frac{m}{p}\rfloor}[\gcd(i,j)=1] \\ &= \sum_{p\in prime}\sum_{d=1}^{\lfloor\frac{n}{p}\rfloor} \mu(d) \lfloor\frac{n}{px}\rfloor \lfloor\frac{m}{px}\rfloor \\ \end{align} \]

枚举 \(T=px\):

\[=\sum_{T=1}^n \lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor \sum_{p\mid T,p\in prime}\mu(\lfloor\frac{T}{p}\rfloor) \]

令 \(f(n)=\sum\limits_{p\mid n,p\in prime}\mu(\lfloor\frac{n}{p}\rfloor)\),只需要预处理出 \(f(n)\) 的前缀和即可。具体的,枚举每一个质数,然后用类似埃式筛的方法求出 \(f(n)\)。时间复杂度 \(\mathcal{O}(n\log\log n+T\sqrt n)\)。

//预处理
for(int i = 1;i <= cnt;i++)
    for(int j = p[i];j < N;j += p[i])
        f[j] += mu[j/p[i]];
for(int i = 1;i < N;i++)f[i] += f[i-1];
//计算
for(int i = 1,j;i <= min(n,m);i = j+1)
{
    j = min(n/(n/i),m/(m/i));
    ans += (f[j]-f[i-1])*(n/i)*(m/i);
}
  1. [P3327 SDOI2015] 约数个数和

设 \(d(n)\) 为 \(n\) 的约数个数,求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^md(ij)\),\(T\) 组数据,\(T,n,m\le 5000\)。

考虑转化 \(d(ij)\),将 \(ij\) 的因子与 \(i\) 和 \(j\) 的因子一一对应。如果 \(ij\) 的因子 \(k\) 中有一个因子 \(p^c\),\(i\) 中有 \(p^a\),\(j\) 中有 \(p^b\),则 \(c\le a+b\)。 那么:

  • 如果 \(c\le a\),那么在 \(i\) 中选择 \(p^a\);
  • 如果 \(c>a\),那么在 \(j\) 中选择 \(p^{c-a}\)。

所以如果在 \(i\) 中选择一个因子 \(x\),在 \(j\) 中选择一个因子 \(y\) 且 \(\gcd(x,y)=1\),则 \(x,y\) 一定对应一个 \(ij\) 的因子。所以 \(d(ij)=\sum\limits_{x\mid i}\sum\limits_{y\mid j}[\gcd(x,y)=1]\)

\[\begin{align}\sum_{i=1}^n\sum_{j=1}^md(ij)&=\sum_{i=1}^n\sum_{j=1}^m\sum_{x\mid i}\sum_{y\mid j}[\gcd(x,y)=1] \\ &=\sum_{x=1}^n\sum_{y=1}^m\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor[\gcd(x,y)=1] \\ &= \sum_{x=1}^n\sum_{y=1}^m\lfloor\frac{n}{x}\rfloor\lfloor\frac{m}{y}\rfloor\sum_{d\mid x,d\mid y}\mu(i) \\ &=\sum_{d=1}^n\mu(i)\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{x=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{n}{xd}\rfloor\lfloor\frac{m}{yd}\rfloor \\ &= \sum_{d=1}^n\mu(i)(\sum_{x=1}^{\lfloor\frac{n}{d}\rfloor}\lfloor\frac{n}{xd}\rfloor)(\sum_{y=1}^{\lfloor\frac{m}{d}\rfloor}\lfloor\frac{m}{yd}\rfloor)\end{align} \]

发现括号里面的东西可以预处理,令 \(f(n)=\sum\limits_{i=1}^n\lfloor\frac{n}{i}\rfloor\),则原式等于 \(\sum\limits_{d=1}^n\mu(i)f(\lfloor\frac{n}{d}\rfloor)f(\lfloor\frac{m}{d}\rfloor)\),数论分块即可。时间复杂度 \(\mathcal{O}(n\sqrt{n}+T\sqrt{n})\)。

//预处理
for(int i = 1;i < N;i++)
    for(int j = 1,k;j <= i;j = k+1)
    {
        k = i/(i/j);
        f[i] += (k-j+1)*(i/j);
    }
//计算
for(int i = 1,j;i <= min(n,m);i = j+1)
{
    j = min(n/(n/i),m/(m/i));
    ans += (smu[j]-smu[i-1])*f[n/i]*f[m/i];
}
  1. P1829 Crash的数字表格

求:\(\sum\limits_{i=1}^n\sum\limits_{j=1}^m\operatorname{lcm}(i,j)\),\(T\) 组数据,\(n,m\le 10^7,T\le 10^4\)

因为 \(\operatorname{lcm}(i,j)=\frac{ij}{\gcd(i,j)}=\gcd(i,j)\times\frac{i}{\gcd(i,j)}\times\frac{j}{\gcd(i,j)}\),枚举 \(\gcd(i,j)\):

\[\sum_{i=1}^n\sum_{j=1}^m\operatorname{lcm}(i,j)=\sum_{d=1}^nd\times\sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}[\gcd(i,j)=1]\times ij \]

为了单独计算后半边式子,记 :

\[\operatorname{sum}(n,m)=\sum_{d=1}^nd\times\sum_{i=1}^n\sum_{j=1}^m[\gcd(i,j)=1]\times ij \]

另外,记 \(S(n)=\sum\limits_{i=1}^ni=\frac{n(n+1)}{2}\),那么:

\[\begin{align}\operatorname{sum}(n,m)&=\sum_{i=1}^n\sum_{j=1}^mij\times \sum_{d\mid i,d\mid j}\mu(d) \\ &= \sum_{d=1}^n\mu(d)\times d^2\times \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor}\sum_{j=1}^{\lfloor\frac{m}{d}\rfloor}ij \\ &=\sum_{d=1}^n\mu(d)d^2\times S(\lfloor\frac{n}{d}\rfloor)S(\lfloor\frac{m}{d}\rfloor)\end{align} \]

其实到这里就可以数论分块套数论分块做了,时间复杂度 \(\mathcal{O}(Tn^{\frac{3}{4}})\),但事实上原式还可以优化。

\[\sum_{d=1}^nd\times\operatorname{sum}(\lfloor\frac{n}{d}\rfloor,\lfloor\frac{m}{d}\rfloor)=\sum_{d=1}^nd\times\sum_{k=1}^{\lfloor\frac{n}{d}\rfloor}\mu(k)k^2\times S(\lfloor\frac{n}{dk}\rfloor)S(\lfloor\frac{m}{dk}\rfloor) \]

把 \(d\) 乘进去:

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

先枚举 \(T=dk\):

\[\sum_{T=1}^nS(\lfloor\frac{n}{T}\rfloor)S(\lfloor\frac{m}{T}\rfloor)\times T\sum_{k\mid T}\mu(k)k \]

发现后半部分其实是可以预处理的,只需要求出 \(T\sum\limits_{k\mid T}\mu(k)k\) 的前缀和即可。令函数 \(f(n)=\sum\limits_{k\mid n}\mu(k)k\),不难证明 \(f\) 是积性函数,所以可以在线性筛的时候顺便求。具体的,如果在用 \(i\) 筛 \(i\times p\) 时 \(x\) 有平方因子,即 \(p\mid i\),因为 \(\mu(n)\) 在 \(n\) 有平方因子时为 \(0\),所以 \(f(i\times p)=f(i)\);如果没有平方银子,根据积性函数的性质,有 \(f(i\times p)=f(i)\times f(p)\)。时间复杂度 \(\mathcal{O}(T\sqrt n)\)。

//预处理
void init()
{
    f[1] = 1;
    for(int i = 2;i < N;i++)
    {
        if(!vis[i])p[++cnt] = i,f[i] = mod+1-i;
        for(int j = 1;j <= cnt&&i*p[j] < N;j++)
        {
            int now = i*p[j];vis[now] = 1;
            if(i%p[j]==0){f[now] = f[i];break;}
            f[now] = f[i]*f[p[j]]%mod;
        }
    }
    for(int i = 1;i < N;i++)f[i] = (f[i-1]+f[i]*i)%mod;
}
//计算
for(int i = 1,j;i <= n;i = j+1)
{
    j = min(n/(n/i),m/(m/i));
    (ans += (f[j]-f[i-1]+mod)*S(n/i)%mod*S(m/i)) %= mod;
}
  1. [P3312 SDOI2014] 数表

给定 \(n,m,a\),求 \(\sum\limits_{i=1}^n\sum\limits_{j=1}^m \sigma(\gcd(i,j))[\sigma(\gcd(i,j))\le a]\),\(T\) 组数据,\(n,m\le 10^5,T\le 2\times 10^4\)。

先考虑没有 \(a\) 的限制:

\[\begin{align} ans &= \sum_{i=1}^n\sum_{j=1}^m \sigma(\gcd(i,j)) \\ &= \sum_{d=1}^n \sigma(d) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} \sum_{j=1}^{\lfloor\frac{m}{d}\rfloor} [\gcd(i,j)=1] \\ &= \sum_{d=1}^n \sigma(d) \sum_{i=1}^{\lfloor\frac{n}{d}\rfloor} \mu(i) \lfloor\frac{n}{di}\rfloor \lfloor\frac{m}{di}\rfloor \end{align} \]

枚举 \(T=di\):

\[\begin{align} ans &= \sum_{T=1}^n \lfloor\frac{n}{T}\rfloor \lfloor\frac{m}{T}\rfloor \sum_{d\mid T} \sigma(d) \mu(\lfloor\frac{T}{d}\rfloor) \end{align} \]

令 \(f(x)=\sum\limits_{d\mid x} \sigma(d) \mu(\lfloor\frac{x}{d}\rfloor)\),此时只有当 \(\sigma(d)\le a\) 时,才会对 \(f(x)\) 产生贡献。

于是可以按 \(a\) 从小到大对询问排序,每次暴力加入所有 \(\sigma(d)\le a\) 的 \(d\),并更新 \(f(x)\)。由于求答案还需要知道 \(f\) 的前缀和,所以用树状数组维护即可。每个数插入的次数为调和级数,而插入一次时间复杂度为 \(\mathcal{O}(\log n)\),所以总时间复杂度就是 \(\mathcal{O}(n\log^2 n+T\sqrt n\log n)\)。

杜教筛

介绍:

杜教筛可以在 \(\mathcal{O}(n^\frac 2 3)\) 的时间复杂度中求出一类积性函数的前缀和。假设 \(f\) 是一个积性函数,如果能找到另一个积性函数 \(g\) 使得 \(g\) 和\(f\ast g\) 的前缀和都能快速求出,那么就能用杜教筛求出 \(f\) 的前缀和。

比如:

  • 可以在 \(\mathcal{O}(1)\) 的时间内求出 \(1\) 和 \(\varepsilon\) 的前缀和,而 \(\mu\ast I=\varepsilon\),所以可以用杜教筛求出 \(\mu\) 的前缀和。
  • 可以在 \(\mathcal{O}(1)\) 的时间内求出 \(1\) 和 \(Id\) 的前缀和,而 \(\varphi\ast I=Id\),所以可以用杜教筛求出 \(\varphi\) 的前缀和。

杜教筛:

现在要求积性函数 \(f\) 的前缀和,令 \(S(n)=\sum\limits_{i=1}^n f(i)\)。

再找一个积性函数 \(g\),则 \(f\ast g\) 的前缀和为:

\[\begin{align} \sum_{i=1}^n (f\ast g)(i) &= \sum_{i=1}^n\sum_{d\mid i} f(d)g(\frac i d) \\ &= \sum_{d=1}^n g(d) \sum_{i=1}^{\lfloor\frac n d\rfloor} f(i) \\ &= \sum_{d=1}^n g(d)S(\lfloor\frac n d\rfloor) \end{align} \]

接着考虑 \(g(1)S(n)\) 等于什么,发现:

\[\begin{align} g(1)S(n) &= \sum_{i=1}^n g(i)S(\lfloor\frac n i\rfloor)-\sum_{i=2}^n g(i)S(\lfloor\frac n i\rfloor) \\ &= \sum_{i=1}^n(f\ast g)(i)-\sum_{i=2}^n g(i)S(\lfloor\frac n i\rfloor) \end{align} \]

此时只需要找一个积性函数 \(g\) 使得 \(g\) 和 \(f\ast g\) 的前缀和都可以快速求出,就可以数论分块递归来求了。

伪代码:

ll sum_g(ll n);//g的前缀和
ll sum_fg(ll n);//f*g的前缀和
ll sum_f(ll n)
{
    ll ans = sum_fg(n);
    for(ll i = 2,j;i <= n;i = j+1)
    {
        j = n/(n/i);
        ans -= (sum_g(j)-sum_g(i-1))*sum_f(n/i);
    }
    return ans;
}

杜教筛是数论分块里面递归,时间复杂度可以看作 \(\mathcal{O}(n^\frac 3 4)\),具体咋证的可以看以下式子感性理解:

\[\sum_{i=1}^{\sqrt n} \mathcal{O}(\sqrt i)+\mathcal{O}(\sqrt\frac n i)=\mathcal{O}(n^\frac 3 4) \]

其实可以预处理出前 \(m\) 个答案,然后再用杜教筛,时间复杂度就是:

\[\sum_{i=1}^{\lfloor\frac n m\rfloor}\mathcal{O}(\sqrt \frac n i) = \mathcal{O}(\frac {n}{\sqrt m}) \]

一般为了平均,当 \(m=n^\frac 2 3\) 时,时间复杂度也是 \(\mathcal{O}(n^\frac 2 3)\)。

\(\mu,\varphi\) 的前缀和

  • \(\mu\ast I=\varepsilon\),而 \(I(n)\) 的前缀和就是 \(n\),\(\varepsilon(n)\) 的前缀和就是 \(1\)。
  • \(\varphi\ast I=Id\),而 \(Id(n)\) 的前缀和就是 \(\frac{n(n+1)}2\)。

代码中 \(smu,sphi\) 是提前筛好的 \(\mu\) 和 \(\varphi\) 的前缀和,\(Smu,Sphi\) 是记忆化。

ll sum_mu(int n)
{
    if(n < N)return smu[n];
    if(Smu[n])return Smu[n];
    ll ans = 1;
    for(ll i = 2,j;i <= n;i = j+1)
    {
        j = n/(n/i);
        ans -= (j-i+1)*sum_mu(n/i);
    }
    return Smu[n] = ans;
}
ll sum_phi(int n)
{
    if(n < N)return sphi[n];
    if(Sphi[n])return Sphi[n];
    ll ans = n*(n+1ll)/2;
    for(ll i = 2,j;i <= n;i = j+1)
    {
        j = n/(n/i);
        ans -= (j-i+1)*sum_phi(n/i);
    }
    return Sphi[n] = ans;
}

扩展:

求 \(f(n)=\varphi(i)\times i\) 的前缀和。

令 \(g=Id\),则:

\[\begin{align} (f\ast g)(n) &= \sum_{d\mid n}(\varphi(d)\times d)\times \frac n d \\ &= n\sum_{d\mid n}\varphi(d) \\ &= n^2 \end{align} \]

所以 \(f\ast g\) 的前缀和就是 \(\frac{n(n+1)(2n+1)} 6\)。

PN 筛

咕咕咕

Min25 筛

咕咕咕

标签:lfloor,frac,ast,乌斯,sum,rfloor,mu,反演,莫比
From: https://www.cnblogs.com/max0810/p/18328775

相关文章

  • ABC361F x=a^b(容斥,莫比乌斯反演)
    题意求\(1\)~\(n\)中有多少数\(x\)可以写成\(x=a^b\)的形式(其中\(b\ge2\))\(n\le10^{18}\)容斥显然\(1\)是可以写成\(1^b\)的,我们单独讨论这种情况,以下默认\(a\ge2\)发现一个数有可能有很多种\(a^b\)的写法,比如\(64=2^6=4^3=8^2\)显然当\(b\)不是质数......
  • 空间反演对称性 (Spatial Inversion Symmetry) 和非线性响应 (Non-linear Response)
    我们定义一次宇称变换(paritytransformation)为反转所有坐标:\[\mathcal{P}:\begin{pmatrix}x\\y\\z\end{pmatrix}\rightarrow\begin{pmatrix}-x\\-y\\-z\end{pmatrix}\]如果在一维世界中,宇称变换就像是透过“镜子”看这个世界;在三维世界中,则是将全部体系对于......
  • 容易的多元拉格朗日反演练习题
    你说得对,但确实和题目没有一点关系。模拟赛记录下午出。题面看到Alice和Bob就知道是什么题了。思路这个题开始先胡乱想想,发现按照博弈论的思路,那么每次Bob行动一步后,Alice需要有对应的策略,也就是说,若Alice必胜,这次行动应该是固定的最优策略步。然后再代入一下,如果......
  • 莫比乌斯函数与莫比乌斯反演
    9.莫比乌斯函数与莫比乌斯反演9.1莫比乌斯函数9.1.1定义设\(\mu\)为莫比乌斯函数,则有:\[\mu(x)=\begin{cases}1\qquad(n=1)\\0\qquad(∃\i\(ki=x,k\inZ\rightarrow\sqrt{i}\inZ))\\(-1)^{\sum_{i\inprime}[i\midx]}\end{cases}\]直观地说,只要\(x\)的某个质......
  • Solution Set - 容斥原理/二项式反演
    https://www.becoder.com.cn/contest/5400「BZOJ2863」愤怒的元首题目就是求\(n\)个点DAG的数量。设\(dp_i\)表示\(i\)个点的DAG数量。首先DAG一定存在出度为\(0\)的点,其次删去出度为\(0\)的点,仍构成一个DAG。所以我们可以枚举删去的数量,从而划分子问题。......
  • 基于Python星载气溶胶数据处理与反演分析
    在当前全球气候变化和环境污染问题日益突出的背景下,气溶胶研究显得尤为重要。气溶胶在大气中由直径范围在0.01微米至10微米固体和液体颗粒构成,直接或间接影响地球辐射平衡、气候变化和空气质量。尤其在“碳中和”目标的驱动下,研究气溶胶对“碳中和”的气候影响及其环境效应,不仅......
  • 【笔记】Set - 容斥原理/二项式反演
    https://www.becoder.com.cn/contest/5400「BZOJ2863」愤怒的元首题目就是求\(n\)个点DAG的数量。设\(dp_i\)表示\(i\)个点的DAG数量。首先DAG一定存在出度为\(0\)的点,其次删去出度为\(0\)的点,仍构成一个DAG。所以我们可以枚举删去的数量,从而划分子问题。......
  • 基于MATLAB的从图像反演SAR原始回波【持续更新】
    一、概论当前在网上公开的SAR数据大部分都是聚焦过后的SLC图像,对想研究成像原理的朋友十分不友好,该文章提出了一种基于图像进行反演SAR原始回波的方法。二、SAR原理介绍想要理解SAR的原理,需要先了解两个基本概念1、多普勒效应多普勒效应(Dopplereffect)是为纪念奥地......
  • 莫比乌斯反演
    前置知识:积性函数。定义:一个函数\(f\),若\(\forall\gcd(a,b)=1\),都有\(f(a)\timesf(b)=f(a\timesb)\),则它是积性函数。一个函数\(f\),若\(\forall(a,b)\),都有\(f(a)\timesf(b)=f(a\timesb)\),则它是完全积性函数。正题狄利克雷卷积先放一张图方便下文理解(copyz......
  • 更^{2+eps}炫酷的反演魔术
    参考资料:x义x:更炫酷的反演魔术,x义x:更更炫酷的反演魔术考虑将二项式反演的符号化方法扩展到斯特林反演上。染色问题现有一排\(n\)个格子,每个格子皆可涂成\(c\)种颜色之一。给定集合\(W\),定义一个染色合法当且仅当:对于任意格子,记和它颜色相同的格子有\(x\)个(包括......