首页 > 其他分享 >数学

数学

时间:2024-12-26 20:19:17浏览次数:2  
标签:lfloor right frac sum mu 数学 left

数学

1 数论

1.1 模方程

  • 中国剩余定理:解决多个单元模方程组,形如 \(x\equiv a_i\bmod m_i\),且 \(m_i\) 两两互质。令 \(M\) 为所有 \(m_i\) 的乘积,记 \(w_i=M/m_i\),使用 exgcd 得到满足 \(w_ip_i+m_iq_i=1\) 的 \(p_i,q_i\)。令 \(e_i=w_ip_i\),则方程组最后的解 \(x_0=e_1a_1+e_2a_2+\cdots +e_na_n\)。简单证明:对 \(w_ip_i+m_iq_i=1\) 两边同时取模 \(m_i\),那么 \(e_i=1\);当 \(j\ne i\) 时,两边同时取模,\(w_j\) 为 \(m_i\) 倍数。

        scanf("%lld", &n);
        rep(i, 1, n) scanf("%lld%lld", &m[i], &a[i]), M *= m[i];
        rep(i, 1, n){
            int w = M / m[i]; exgcd(w, m[i]);
            int e = w * x;
            (x0 += e * a[i]) %= M;
        } printf("%lld\n", (x0 + M) % M);
    
  • BSGS(离散对数):求解模方程 \(a^x\equiv b\bmod n\),其中 \(n\) 为素数。根据欧拉定理,我们只需检验 \(x=0,1,2,\cdots,n-1\) 是不是解即可。我们不妨先只检验前 \(m\) 项,并把 \(e_i=a^i\bmod n\) 保存。下面考虑 \(x=m,m+1,\cdots,2m-1\),此时若其中有解,则存在 \(i\) 满足 \(e_i\times a^m\equiv b\bmod n\),即 \(e_i\equiv a^{-m}b\bmod n\)。而上述合法的 \(e_i\) 是可以通过 map 维护,\(O(\log n)\) 得到的。同时,上述过程可推广至 \(x=im,im+1,\cdots,2im+1\)。当 \(m=\sqrt n\) 时,时间复杂度最小,为 \(O(\sqrt n \log n)\)。

    std::map<int, int> Mp;
    inline void BSGS(){
        int m = (int)sqrt(n + 0.5), inv = pw(pw(a, n - 2, n), m, n);
        Mp.clear();
        Mp[1] = 0; int fac = 1ll;
        rep(i, 1, m - 1){
            fac = fac * a % n; if(!Mp.count(fac)) Mp[fac] = i;
        } fac = 1ll;
        rep(i, 0, m - 1){
            if(Mp.count(fac * b % n)) return printf("%lld\n", i * m + Mp[fac * b % n]), void();
            (fac *= inv) %= n;
        } printf("no solution\n");
    }
    

例题:

  1. UVA11426 GCD Extreme:\(f_n=\sum_{i=1}^{n-1}\gcd(i,n)=\sum_{d|n}d\times \varphi(\frac{n}{d})\)。\(O(n\log n)\) 预处理,\(O(1)\) 回答。

  2. UVA11754 Code Feat:数据分治。观察到条件个数较少,当 \((M=\prod m_i)\leq 1e4\) 时,模数都较小,考虑 CRT;反之,模数都较大,考虑直接枚举,发现余数集越小、模数越大的数越优,所以枚举 \(k_i/m_i\) 最小的那个模数,枚举倍数暴力验证即可。

  3. UVA11916 Emoogle Grid:发现条件只限制了竖直方向上相邻的两个方格颜色不同。小奥,当格子上方为空或为特殊格时,有 \(K\) 种颜色;反之,有 \(K-1\) 种颜色。显然行数 \(M\) 的范围是有限制的,即不能小于任何一个特殊格。统计包含所有特殊格的“不变部分”,方案数记为 \(cnt\);若 \(cnt\ne R\),考虑第一行“可变部分”的方案数,显然在特殊格正下方的格子会受影响,记它和“不变部分”的总方案数为 \(cnt'\);若 \(cnt'\ne R\),接下来每一行方案数 \(P=(K-1)^N\),则有 \(P^m\times cnt'\equiv R\bmod p\),把 \(cnt'\) 移到右边,套 BSGS 即可。

1.2 线性筛

  • 线性筛:

    inline void init(){
        g[1] = 1;//g[i]表示i的最小质因子
        for(int i = 2; i <= _; ++i){
            if(!vis[i]) pr[++tot] = i, g[i] = i;
            for(int j = 1; j <= tot and i * pr[j] <= _; ++j){
                vis[i * pr[j]] = 1, g[i * pr[j]] = pr[j];
                if(i % pr[j] == 0) break;
        }}}
    

例题:

  1. [POI2012] OKR-A Horrible Poem:好题。巧妙转化一下题意:如果存在一个长度 \(len\) 的循环节,一定满足 \(S_{[a,b-len]}=S_{[a+len,b]}\),且 \(len|b - a+1\),充分必要。进一步发现,总长 \(L=b-a+1=len_0\times cnt_0\),其中 \(len_0\) 表示最小循环节长度,\(cnt_0\) 表示最小循环节出现次数。这样第二个条件可以通过分解 \(L\) 求得最短循环节长度。判断循环节是否合法,根据第一条,我们可以维护哈希 \(O(1)\) 求得。线性筛加速质因数分解。

1.3 整除分块、积性函数、莫比乌斯反演、狄利克雷卷积、杜教筛

  • 整除分块:

    • 一般当式子中含有 \(\left\lfloor\frac{n}{i}\right\rfloor\) 时,考虑使用整除分块优化计算复杂度。

    • 考虑当只做一次整除分块时,时复为 \(O(n^{\frac{1}{2}})\);套两层整除分块时,时复为 \(O(n^{\frac{3}{4}})\);根据不断积分推导与大胆猜想,推出套三层时,时复为 \(O(n^{\frac{7}{8}})\);则套 \(k\) 层时,时复为 \(O(n^{\frac{2^k-1}{2^k}})\)。套的层数越多,越接近线性复杂度。

  • 积性函数:

    • 对于任意 \(a\perp b\),都有 \(f(a)f(b)=f(ab)\),则称 \(f(x)\) 为积性函数。

    • 对于任意 \(a,b\),都有 \(f(a)f(b)=f(ab)\),则称 \(f(x)\) 为完全积性函数。

    • 对于任意积性函数,都有 \(f(1)=1\)。

    • 令 \(g(n)=\sum_{d|n}f(d),n\geq 1\),则“\(f\) 是积性函数”与“\(g\) 是积性函数”互为充要条件。其中 \(g\) 称作 \(f\) 的和函数。还有 \(g(n)=\prod_{i=1}^t\sum_{j=0}^{k_i}f(p_t^j)\),其中 \(n=\prod_{i=1}^tp_i^{k_i}\)。莫反就是针对 \(f\) 与 \(g\) 的相互转换。

    • 若 \(f,g\) 皆为积性函数,则 \(h(x)=f(x)g(x)\) 为积性函数,\(f*g=\sum_{d|x}f(x)g(\dfrac{x}{d})\) 也为积性函数。

    • 常见积性函数包括欧拉函数 \(\varphi(n)\) 与莫比乌斯函数 \(\mu(n)\)。

    • \[\text{单位函数 }\epsilon(n)=[n=1]\\\text{幂函数 }Id^k(n)=n^k,id(n)=n\\\text{常数函数 }I(n)=1\\\text{因数个数 }d(n)=\sum_{d|n}1\\\text{除数函数 }\sigma_k(n)=\sum_{d|n}d^k,\sigma(n)=\sum_{d|n}d,\sigma_0(n)=d(n) \]

  • 莫比乌斯函数:

    • \(\mu(x)=\begin{cases}1&x=1\\0&\exists\ p^2|x\\(-1)^k&n=p_1p_2\cdots p_k\end{cases}\)

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

    • 【补充】类似地,有 \(\sum_{d|n}\varphi(d)=n\)

  • 狄利克雷卷积:

    • 定义两个数论函数 \(f,g\) 的狄利克雷卷积为:\((f*g)(n)=\sum_{d|n}f(d)g(\dfrac{n}{d})\)

    • 狄利克雷卷积满足交换律、结合律、分配律。

    • 若 \(f,g\) 为积性函数,则 \((f*g)(n)\) 也为积性函数。

    • 定义 \(\epsilon\) 为狄利克雷卷积的单位元,\(\epsilon(n)=[n=1]\),满足 \((f*\epsilon)(n)=f(n)\),证明显然。

    • \((Id_k*I)(n)=\sum_{d|n}d^k=\sigma_k(n)\),实际上只是写法不同,本质都是中间的那个 \(\sum_{d|n}d^k\)。

    • \(\epsilon =\mu * I\),等价于 \(\sum_{d|n}\mu(d)=[n=1]\),较为显然。

    • $id=\varphi * I $,等价于 \(\sum_{d|n}\varphi(d)=n\),较为显然。

    • \(\varphi = id*\mu\),等价于 \(\sum_{d|n}d\mu(\dfrac{n}{d})=\varphi(n)\),而这个转化就极为有用,它实现了 \(\varphi\) 和 \(\mu\) 之间的转化。

      证明:\(\varphi=\varphi*\epsilon=\varphi*(\mu*I)=(\varphi*I)*\mu=id*\mu\)。

    • 与莫比乌斯反演相结合,等价于给定 \(g=f*I\),则有莫反 \(f=g*\mu\)。

      证明:\(g*\mu=(f*I)*\mu=f*\epsilon=f\)。

  • 杜教筛:

    • 杜教筛可在非线性时间内求积性函数的前缀和。对于求 \(f\) 的前缀和,构造 \(g*f\),则 \(g(1)S(n)=\sum_{i=1}^n(f*g)(i)-\sum_{d=2}^ng(d)S(\left\lfloor\dfrac{n}{d}\right\rfloor)\)。快速求解 \(h=f*g\) 的前缀和,使用数论分块并递归求解 \(S(\left\lfloor\dfrac{n}{d}\right\rfloor)\)。不妨对 \(\leq n^{\frac{2}{3}}\) 的 \(S(n)\) 用线性筛预处理出来,并在递归过程中使用 map 进行记忆化,则最终可将复杂度降至 \(O(n^{\frac{2}{3}})\)。

      不妨假设所求 \(S(n)=\sum_i^nf(i)\),其中 \(f\) 为积性函数。构造 \(h=f*g,H(n)=\sum_i^nh(i)\)。\(H(n)=\sum_i^n(f*g)(i)=\sum_i^n\sum_{d|i}f(d)g(\dfrac{i}{d})=\sum_d^ng(d)\sum_i^{\left\lfloor\frac{n}{d}\right\rfloor}f(i)\\=\sum_{d=1}^ng(d)S(\left\lfloor\dfrac{n}{d}\right\rfloor)\)如何得到 \(g(1)f(n)\)?将 \([1,n]\) 的前缀和减去 \([2,n]\) 的前缀和即可。得到:\(g(1)S(n)=\sum_i^n(f*g)(i)-\sum_{d=2}^ng(d)S(\left\lfloor\dfrac{n}{d}\right\rfloor)\\=H(n)-\sum_{d=2}^ng(d)S(\left\lfloor\dfrac{n}{d}\right\rfloor)\)

    • \(\mu\) 的前缀和:显然 \(\mu*I=\epsilon\)。

      inline int getphi(int n){
          if(n <= _) return phi[n]; if(pmp.count(n)) return pmp[n];
          int res = n * (n + 1) / 2;
          for(int l = 2, r; l <= n; l = r + 1){
              r = (n / (n / l)); res -= (r - l + 1) * getphi(n / l);
          } return pmp[n] = res;
      }
      
    • \(\varphi\) 的前缀和:显然 \(\varphi*I=id\)。

      inline int getmu(int n){
          if(n <= _) return mu[n]; if(mmp.count(n)) return mmp[n];
          int res = 1;
          for(int l = 2, r; l <= n; l = r + 1){
              r = (n / (n / l)); res -= (r - l + 1) * getmu(n / l);
          } return mmp[n] = res;
      }
      
    • \(f(i)=\varphi(i)\times i\) 的前缀和:不妨取 \(g=id\),则 \(h(i)=\sum_{d|i}f(i)g(\frac{i}{d})=i^2\)。同时 \(g\) 的前缀和也可以快速算得。\(f(i)=\varphi(i)\times i^2\) 同理。例题:P3768 简单的数学题。

    • 【补充】\(1^2+2^2+\cdots+n^2=\dfrac{n(n+1)(2n+1)}{6}\)

    • 【补充】\(1^3+2^3+\cdots+n^3=\dfrac{n^2(n+1)^2}{4}\)

  • 莫比乌斯反演:

    • \(g(n)=\sum_{d|n}f(d)\Leftrightarrow f(n)=\sum_{d|n}\mu(d)g(\dfrac{n}{d})\)

    • \(g(n)=\sum_{n|d}f(d)\Leftrightarrow f(n)=\sum_{n|d}\mu(\dfrac{d}{n})g(d)\)

    • 莫比乌斯反演及莫比乌斯函数可以理解为容斥原理在数论中的一种表现形式。

    • 形式一:\(\sum_{i}^n\sum_{j}^m[gcd(i,j)=1]=\sum_{x}^{n}\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor\mu(x)\),其中 \(i,j,x\) 都从 \(1\) 开始,\(n\leq m\)。

    • 形式二:\(\sum_{i}^n\sum_{j}^mgcd(i,j)=\sum_{x}^{n}\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor\varphi(x)\),其中 \(i,j,x\) 都从 \(1\) 开始,\(n\leq m\)。

    • 形式三:\(\sum_{i}^n\sum_{j}^mf(gcd(i,j))=\sum_{x}^{n}\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor\sum_{d|x}f(d)\mu(\dfrac{x}{d})\),其中 \(i,j,x\) 都从 \(1\) 开始,\(n\leq m\)。

    • 以上三种形式都可以 \(O(n)\) 预处理,单次询问 \(O(\sqrt n)\),数论分块维护。

    • 推广一:\(\sum_i^n\sum_j^m[gcd(i,j)=d]=\sum_x^{\left\lfloor\frac{n}{d}\right\rfloor}\left\lfloor\frac{n}{dx}\right\rfloor\left\lfloor\frac{m}{dx}\right\rfloor\mu(x)\),其中 \(i,j,x\) 都从 \(1\) 开始,\(n\leq m\)。

例题:(默认 \(n\leq m\),用 \(\sum_a^b\) 表示 \(\sum_{a=1}^b\))

  1. SPOJ Visible Lattice Points:

求 \(N\times N\times N\) 三维可见格点数量。

\[\sum_i^n\sum_j^n\sum_k^n[\gcd(i,j,k)=1]\\=\sum_d^n\sum_i^n\sum_j^n\sum_k^n[d|i][d|j][d|k]\mu(d)\\=\sum_d^n \left\lfloor\frac{n}{x}\right\rfloor^3\mu(d) \]

  1. HDU 4746 Mophues:

多次询问给定 \(n,m,p\),求 \(\sum_i^n\sum_j^m[h(\gcd(i,j)\leq p]\),其中 \(h(x)\) 表示 \(x\) 的所有可重素因子个数。

\[\sum_i^n\sum_j^m[h(\gcd(i,j)\leq p]\\=\sum_d^n[h(d)\leq p]\sum_i^n\sum_j^m[\gcd(i,j)=d]\\=\sum_d^n[h(d)\leq p]\sum_k^{\left\lfloor\frac{n}{d}\right\rfloor}\left\lfloor\frac{n}{kd}\right\rfloor\left\lfloor\frac{m}{kd}\right\rfloor\mu(k)\\ =\sum_d^n[h(d)\leq p]\sum_{d|x}^n\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor\mu(\dfrac{x}{d})\\=\sum_x^n\left\lfloor\frac{n}{x}\right\rfloor\left\lfloor\frac{m}{x}\right\rfloor\sum_{d|x}\mu(\dfrac{x}{d})[h(d)\leq p] \]

大致过程就是先把 gcd 提出来,然后常规莫反,用 \(x\) 整理一下形式,最后把 \(d\) 放到一起。实现的话先 \(O(n)\) 预处理,发现 \(p\) 的最大值不超过 \(19\),所以线性筛之后暴力统计上式右边部分即可,处理询问的时候使用数论分块 \(O(\sqrt n)\) 回答,发现当 \(P\geq 20\) 时,上式右边是 \(\mu(x)*1\),所以答案直接输出 \(n\times m\) 即可。

  1. P3327 [SDOI2015] 约数个数和:

多次询问给定 \(n,m\),求 \(\sum_i^n\sum_j^md(ij)\),其中 \(d(x)\) 表示 \(x\) 的约数个数。

补充定理:\(d(ij)=\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1]\),证明通过构造每一种因子的取到方式即可。大多数题解 使用的方式都是对所求 \(f(p)=\sum_i^n\sum_j^m\sum_{x|i}\sum_{y|j}[\gcd(x,y)=p]\) 及其和函数 \(g(n)=\sum_{n|d}f(d)\) 进行简化,并得到 \(g(n)\) 的简单求法,再反演回 \(f(n)\),得到 \(f(1)\)。使用的是莫比乌斯反演的倍数形式。下面展示我个人仅使用莫比乌斯反演简单形式和暴力进行化式子的过程,一些默认的求和上指标就省略了:

\[\sum_i^n\sum_j^m\sum_{x|i}\sum_{y|j}[\gcd(x,y)=1]\\=\sum_i^n\sum_j^m\sum_{x|i}\sum_{y|j}\sum_d[d|x][d|y]\mu(d)\\=\sum_d\mu(d)\sum_i\sum_j\sum_x\sum_y[x|i][y|j][d|x][d|y]\\=\sum_d\mu(d)\sum_{k_1}^{\frac{n}{d}}\sum_{k_2}^{\frac{m}{d}}\sum_{p_1}^{\frac{n}{dk_1}}\sum_{p_2}^{\frac{m}{dk_2}}1\\=\sum_d\mu(d)\sum_i^{\left\lfloor\frac{n}{d}\right\rfloor}\sum_j^{\left\lfloor\frac{m}{d}\right\rfloor}\left\lfloor\frac{n}{id}\right\rfloor\left\lfloor\frac{m}{jd}\right\rfloor \]

两种方法最后得到的式子是相同的,然后 \(O(n)\) 预处理,\(O(T\sqrt n)\) 询问即可。

  1. P3768 简单的数学题:

给定 \(n,p\),求 \(\sum_i^n\sum_j^nij\gcd(i,j)\) 对 \(p\) 取模的结果。\(n\leq1e10,q\leq1.1e9\)。

形式一眼看上去很典。像在 P1829 [国家集训队] Crash的数字表格 / JZPTAB 中,求解 \(\sum_i^n\sum_j^mlcm(i,j)\)。这两道题从推式子方面相差不大,两道题都是对 \(\gcd(i,j)\) 的化解,但此题数据范围较大,难度更胜一筹,所以作为代表性一题。通常来说,看到 \(\gcd(i,j)\) 往往可以用 \(\sum_{d|n}\varphi(d)=n\) 转化为不带 \(\gcd\) 的形式,然后再从 \(\varphi\) 入手考虑。这样会更简单些。但我一开始推的时候没有转化 \(\gcd\) 的意识,所以就直接拿 \(\mu\) 硬推了:(记 \(S(n)=\sum_i^ni\))

\[\sum_i^n\sum_j^nij\gcd(i,j)\\=\sum_d^n\sum_{k_1}\sum_{k_2}k_1k_2d^3[\gcd(k_1,k_2=1]\\=\sum_d^nd^3\sum_k^{\frac{n}{d}}\mu(k)k^2S(\left\lfloor\frac{n}{dk}\right\rfloor)^2\\=\sum_a^nS(\left\lfloor\frac{n}{a}\right\rfloor)^2a^2\sum_{d|a}d\mu(\frac{a}{d})\\=\sum_a^na^2\varphi(a)S(\left\lfloor\frac{n}{a}\right\rfloor)^2 \]

省略了一些显然的推式子过程,重点在第三、四行。第三行用 \(a\) 代替了 \(dk\),巧妙地通过枚举 \(a\) 来很大程度上简化了式子,构造出了狄利克雷卷积形式;第四行通过 \(\mu*id=\varphi\) 直接变成单元形式,然后后面 \(S\) 使用整除分块,前半部分属于经典形式使用杜教筛,一共两层整除分块,时复 \(O(n^{\frac{2}{3}})\)。

  1. P4318 完全平方数:

多次询问 \(T\leq 50\),求第 \(k\leq 10^9\) 个不是某个完全平方数的正整数倍的数是多少。不考虑 \(1\) 作为完全平方数。

杜教筛神题!首先显然和 \(\mu\) 有关,若 \(x\) 满足题意,则 \(\mu(x)\ne0\)。进一步地,为方便统计,我们考虑使用 \(\mu^2(x)\)。则题面转化为:求 \(ans\),满足 \(\sum_{x=1}^{ans}\mu^2(x)=k,\mu^2(ans)=1\)。搭配二分答案,记 \(S(n)=\sum_i^n\mu^2(i)\),则对于 \(mid\),需检验 \(S(mid)\geq k\) 是否为真。由于答案上界过大,无法使用线性筛,考虑杜教筛。则 \(f=\mu^2\),考虑寻找一个合适的函数 \(g=[n=k^2],k\in \N^{+}\)。根据莫反的经验,我们知道,一个真值表达式形式的函数,可以通过改变其枚举方式,使表达式的值恒成立,从而使该函数在枚举时变为常函数

此时考虑 \(h(n)=(f*g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})\),发现当且仅当 \(\frac{n}{d}\) 取到 \(n\) 的最大平方因子时,\(g(\frac{n}{d})=1,f(d)=1\)。而每个数都至少有 \(1\) 作为平方因子。故 \(\sum_i^nh(i)=n\),即二者的卷积前缀和可轻松得到。继续考虑 \(H(n)-\sum_{d=2}^ng(d)S(\left\lfloor\frac{n}{d}\right\rfloor)\) 的后半部分。显然当且仅当 \(d\) 为完全平方数时式子的值不为 \(0\)。所以,整个杜教筛式子可以直接表示为 \(n-\sum_{i=2}^{\sqrt n}S(\left\lfloor\frac{n}{i^2}\right\rfloor)\)。此时我们无需再考虑 \(g\) 的前缀和。总时间复杂度为 \(O(10^6+TK^{\frac{2}{3}}\log K)\)。当然还有另解。打表做法此处暂不考虑。

考虑二分 + 容斥,因为 \(\mu\) 具有天然容斥优势。考虑如何减去那些“某完全平方数的整数倍”的数的个数。我们依次考虑质数的平方,依次删去 \(2^2,3^2,5^2\cdots\) 的整数倍。考虑算重,以此类推,每次考虑若干互异质数乘积 \(\leq n\) 的整数倍个数。显然 \(\mu\) 就是容斥系数,而容斥上界是 \(M\leq \sqrt n\),\(M\) 为互异质数之积。所以 \([1,n]\) 中合法的数的个数为:\(\sum_{i=1}^{\left\lfloor\sqrt n\right\rfloor}\mu(i)\left\lfloor\frac{n}{i^2}\right\rfloor\)。总时间复杂度为 \(O(40559 + T\sqrt K\log K)\)。

  1. SP27942 PROD1GCD - Product it again:

多次询问 \(T\leq 5\),每次给定 \(n,m\),求 \(\prod_i^n\prod_j^m\gcd(i,j)\) 对 \(1e9+7\) 取模的值。

放一道乘积形式的题。因为我们先前所学习的大部分形式与转化,都是基于加法之上的。所以对于乘法的形式,没有直接且 trival 的形式去直接化简。所以通常来讲,都是把因数合并,而因数的指数就变成相加形式了,所以我们就可以对指数进行讨论,回归到我们所熟悉的形态。回归本题,推式子:

\[\prod_i^n\prod_j^m\gcd(i,j)\\=\prod_d^nd^{\sum_i^n\sum_j^m[\gcd(i,j)=d]}=\prod_d^nd^{\sum_k^{\frac{n}{d}}\left\lfloor\frac{n}{dk}\right\rfloor\left\lfloor\frac{m}{dk}\right\rfloor}\\=\prod_a^n(\prod_{k|a}(\frac{a}{k})^{\mu(k)})^{\left\lfloor\frac{n}{a}\right\rfloor\left\lfloor\frac{m}{a}\right\rfloor}$发现外面可以整除分块去做。考虑预处理中间那部分,记 $f(n)=\prod_{k|n}(\frac{n}{k})^{\mu(k)}$$。 显然有 $f(1)=1,f(p)=p,p\in\P$。通过观察数据范围,考虑通过线性筛把 $f$ 筛出来。即使 $f$ 并非积性函数,通过讨论 $f(ab)$ 在 $b|a$ 与 $b\nmid a$($b\in\P$)时 $f(ab)$ 的取值,可以以此使用线性筛筛出 $f$。具体地,当 $b|a$ 时,$f(ab)=f(a)$;当 $b\nmid a$ 时,$f(ab)=1$。总时间复杂度 $O(n+T\sqrt n\log n)$,其中 $\log n$ 是快速幂的复杂度。\]

标签:lfloor,right,frac,sum,mu,数学,left
From: https://www.cnblogs.com/gsn531/p/18634122

相关文章

  • 【高等数学】多元微分学的应用
    空间曲线的切线与法平面参数方程(x(t),y......
  • 【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最
    【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最大似然估计、损失函数的应用,附代码。【深度学习基础|知识概述】基础数学和理论知识中的概率与统计知识:概率与概率分布、最大似然估计、损失函数的应用,附代码。文章目录【深度学习基......
  • 聚焦数学经典难题,领略思维极限挑战
    希尔伯特的23个问题1900年,德国数学家大卫·希尔伯特在巴黎举行的第二届世界数学家大会上提出了23个数学难题,这些问题涵盖了数学的多个重要领域,对20世纪数学的发展产生了深远影响,指引了众多数学家的研究方向,有力推动了数学的进步,其中许多问题现已得到解决,但仍有部分问题未被完全攻......
  • 有趣的API:数学计算公式生成
    数学计算公式生成API集成指南引言在当今数字化时代,数学不再局限于纸笔计算,而是通过各种创新的方式融入到我们的日常生活中。随着互联网技术的发展,API(应用程序编程接口)为开发者提供了一种高效、便捷的方式来整合复杂功能,如在线教育、游戏开发和智能助手等。本文将介绍一种独......
  • 开展深度学习项目所需要的数学基础|入门书籍·24-12-25
    小罗碎碎念深度学习作为一种复杂的机器学习方法,其核心在于构建和训练多层神经网络模型。为了深入理解和有效应用深度学习技术,掌握一定的数学基础是必不可少的。那么,**深度学习需要哪些数学基础呢?深度学习中的数学难点又在哪里?**这些问题常常困扰着初学者。在网络和书籍......
  • 【深度学习基础|知识概述】基础数学和理论知识中的线性知识:矩阵与向量运算、特征值与
    【深度学习基础|知识概述】基础数学和理论知识中的线性知识:矩阵与向量运算、特征值与特征向量、张量,附代码。【深度学习基础|知识概述】基础数学和理论知识中的线性知识:矩阵与向量运算、特征值与特征向量、张量,附代码。文章目录【深度学习基础|知识概述】基础数学和理......
  • PCA主成分分析背后的数学原理(一般情形)
    前言\(\quad\)在$《深度学习》^{[1]}$一书中,为说明LinearALgebra在深度学习中的作用,chapter2的最后一节引入了PCA的思想,并且为方便起见,提前给定了解码器的映射,即\(f(\mathbf{c})=\mathbf{Dc}\),其中\(\mathbf{D}\in\mathbb{R}^{n\timesl}\),那么相应的编码器的映射需......
  • 数学竞赛网站:构建互动学习的网络平台
    2.1MYSQL数据库题目确定了是一个应用程序之后,就开始按部就班的进行设计与分析。本课题是需要数据库作为数据管理工具以及数据载体,从程序功能分析到数据分析,选择合适的关系型数据库是当下所选择的重要环节。关系型数据库可选择余地不多,本身甲骨文公司的两个,微软的两个,IBM的......
  • 数学竞赛网站:全流程分析与技术实现
    3.1可行性分析尽管系统是根据用户的要求进行制作,但是在确定制作前,有必要分析其可行性。3.1.1操作可行性分析开发本系统需要用到的工具,本人都比较熟悉,因此可以使用这些工具,完整开发数学竞赛网站。此外,数学竞赛网站在功能上,基本都是完成信息的处理,涵盖了添加,修改,删除等,而且......
  • 小学数学思维训练 一年级 第一周(少儿思维启蒙)
    前言本文主要介绍了通过各种题型和解题方法培养孩子的数学思维能力。通过系统的方法训练一年级学生的数学思维能力,帮助他们学会举一反三,融会贯通地解决各类数学问题。点击获取小学数学1-6年级思维训练电子版第一周比一比比一比是实际生活中常见的一类数学问题,需要同学们在具......