LGP5495 Dirichlet 前缀和】的更多相关文章

题目 不是很明白为什么要叫做模板 考虑到\(a_i\)能对\(b_j\)产生贡献,当且仅当\(a_i=\prod p_k^{a_k},b_j=\prod p_k^{b_k},\forall k \ a_k\leq b_k\),于是我们把每一个质数次幂看成一维,相当于对\(a\)数组求一个高维前缀和 于是我们枚举每一个质数次幂,利用高维前缀和的方式来做就行了,复杂度同埃筛\(\operatorname{O(n\ log\ log\ n)}\) #include<bits/stdc++.h> #d…
题目大意:给定一个长度为$n$的序列$a_n$,需要求出一个序列$b_n$,满足:$$b_k=\sum\limits_{i|k}a_i$$$n\leqslant10^7$ 题解:$\mathrm{Dirichlet}$前缀和,考虑把$k$写成一个无穷向量$[\beta_1,\beta_2,\beta_3,\cdots]$,满足$k=\sum\limits_iP_i^{\beta_i}$,$P_i$为第$i$个质数.相同的,把$i$写成$[\alpha_1,\alpha_2,\alpha_3,\c…
[模板]Dirichlet 前缀和 求 \[B[i] = \sum_{d|i} A[d] \] $ n \le 2\times 10^{7} $ 看代码: for( int i = 1 ; i <= en && pri[i] <= n ; ++ i ) { for (int j = 1; j * pri[i] <= n; ++j) { B[j * pri[i]] += B[j]; } } 为啥这么做它是对的呢?发现每个数字会被它除以所有质因子转移到,并且是按照质因子从小到…
题意:给定数组a[]的生成方式,然后b[i]=∑a[j]  ,(i%j==0),求所有b[i]的异或和.所有运算%2^32; 思路:高维前缀和的思想,先筛出所有素数,然后把每个素数当成一维,那么分开考虑即可.复杂度O(NloglogN): 如果有这一维就加进去就可以了~神奇. #include<bits/stdc++.h> #define rep(i,a,b) for(int i=a;i<=b;i++) using namespace std; ; #define uint unsign…
题目戳我 \(\text{Solution:}\) 观察到一个\(a_i\)若对\(a_j\)有贡献,则必须\(i\)的所有质因子幂次小于等于\(j\)的质因子幂次. 于是,我们可以枚举质数的倍数并累加即可.其实就是把直接枚举每个数的倍数改为枚举质数的倍数,可以把\(O(n\log n)\)优化到\(O(n\log \log n).\) 注意:埃氏筛筛积性函数是可以做到\(O(n\log\log n)\)的(枚举质数的倍数),而直接枚举每一个数的倍数应该是\(O(n\log n)\)的. #in…
声明:博主不会时空穿越,也没有造成恐慌,不应禁赛三年 Day0 上午:打板子 Polya定理; exkmp; exbsgs; 乘法逆元; 矩阵快速幂; 扫描线; ST表; excrt; Dirichlet 前缀和; NTT 下午试机差评.电脑连不上NOI linux,技术人员过来说因为今天是云端测试,有些机子连不上.然后信息条被贴错地方了. Day1 8:25才进去.没人管我就2分钟写了个对拍命令程序.开考5分钟才得到正确密码差评. 先阅读题面.好像比较正常,先来T1,看到\(2^{64}-1\…
题目戳我 \(\text{Solution:}\) \[\sum_{i=1}^n \sum_{j=1}^n \rho(i)\rho(j)\rho(\gcd(i,j)) \] \[=\sum_{d=1}^n \rho(d)\sum_{i=1}^n \sum_{j=1}^n \rho(i)\rho(j)\rho(\gcd(i,j))[\gcd(i,j)=d] \] \[=\sum_{d=1}^n \rho(d)\sum_{i=1}^\frac{n}{d}\sum_{j=1}^\frac{n}{d}\…
[题目分析] Dirichlet积+莫比乌斯函数. 对于莫比乌斯函数直接筛出处理前缀和. 对于后面向下取整的部分,可以分成sqrt(n)+sqrt(m)部分分别计算 学习了一下线性筛法. 积性函数可以在O(n)的时间内算出. [代码] #include <cstdio> #include <cstring> #include <cmath> #include <cstdlib> #include <map> #include <set>…
Dirichlet 卷积是两个定义域在正整数上的函数的如下运算,符号为 $*$ $(f * g)(n) = \sum_{d|n}f(d)g(\frac{n}{d})$ 如果不强调 $n$ 可简写为 $f * g$ 常用: $\mu * 1 = \epsilon$ $\phi * 1 = id$ $\epsilon(n) = [n=1]$ $id(n)=n$ Mobius 反演是基于 Dirichlet 卷积的一种....化简式子的方法? 比较有用的结论就是 $\mu * 1 = [n=1]$ 由…
下文中所有讨论都在数论函数范围内开展. 数论函数指的是定义域为正整数域, 且值域为复数域的函数. 数论意义下的和式处理技巧 因子 \[ \sum_{d | n} a_d = \sum_{d | n} a_{\frac n d} \] 双重因子 \[ \sum_{k | n} \sum_{j | k} a_{k, j} = \sum_{k | n} \sum_{j | \frac n k} a_{jk, k} \] \[ \sum_{n | k} \sum_{k | j} a_{k, j} = \…