积性函数
文章平均质量分 81
整除分块,积性函数,狄利克雷卷积,,莫比乌斯反演等
Happig丶
我的孤独,虽败犹荣
展开
-
牛客练习赛76 F - phi and phi(欧拉函数性质+莫比乌斯反演+差分)
传送门题目大意给定nnn,f(n)=∑i=1n∑j=1nφ(ij)φ(gcd(i,j))f(n) = \sum_{i=1}^n\sum_{j=1}^n \varphi(ij)\varphi(gcd(i,j))f(n)=∑i=1n∑j=1nφ(ij)φ(gcd(i,j)),求出[1,n][1,n][1,n]每个数的fff值输出。解题思路这道题有三个难点,我挂在了第一个…第一步:问题简化首先式子里的φ(gcd(i,j))\varphi(gcd(i,j))φ(gcd(i,j))看着很不爽,不按常原创 2021-01-18 21:42:55 · 237 阅读 · 0 评论 -
2020WHU校赛 I - Interesting Matrix Problem(规律+整除分块)
传送门#include <set>#include <map>#include <stack>#include <queue>#include <math.h>#include <cstdio>#include <string>#include <cstring>#include ...原创 2020-05-02 22:21:19 · 200 阅读 · 0 评论 -
洛谷 P2261 [CQOI2007]余数求和(整除分块)
传送门首先知道这个式子是不能暴力的∑i=1nk mod i\sum_{i=1}^nk~mod~i∑i=1nk mod i根据取模的定义,我们可以化简:∑i=1nk mod i=∑i=1nk−i∗⌊ki⌋=∑i=1nk−∑i=1ni∗⌊ki⌋\sum_{i=1}^nk~mod~i=\sum_{i=1}^nk-i*⌊\frac{k}{i}⌋=\sum_{i=1}^nk-\sum_{i=1}^ni*⌊\frac{k}{i}⌋∑i=1nk&nb原创 2020-07-16 15:13:47 · 215 阅读 · 0 评论 -
整除分块
问题引入求∑i=1n⌊ni⌋,n≤1014\sum_{i=1}^n⌊\frac{n}{i}⌋,n \leq 10^{14}∑i=1n⌊in⌋,n≤1014等价定义设f(x)f(x)f(x)为xxx的因子个数,则上述问题等价于∑i=1nf(i)\sum_{i=1}^nf(i)∑i=1nf(i)又根据因数个数定理,设xxx的质因数分解式为x=P1a1∗P2a2∗...∗Pnanx=P_1^{a_1} *P_2^{a_2}*...*P_n^{a_n}x=P1a1∗P2a2∗...∗Pnan原创 2020-07-16 10:06:15 · 292 阅读 · 0 评论 -
洛谷 P2532 [AHOI2012]树屋阶梯(高精度卡特兰数)
传送门需要注意只能使用n个钢材,那么意味着每一个对角对应的矩形是唯一的,不可再分割成更小的矩形,如图所示:那么我们不难得到如下递推式:f(n)=∑i=0n−1f(i)∗f(n−i−1)f(n)=\sum_{i=0}^{n-1} f(i)*f(n-i-1)f(n)=∑i=0n−1f(i)∗f(n−i−1)那么就是卡特兰数了,因为涉及到高精度,所以要JavaJavaJavaimport java.math.BigInteger;import java.util.Scanner;public原创 2020-07-11 20:49:12 · 239 阅读 · 0 评论 -
POJ - 2480 Longge‘s problem(积性函数+欧拉函数)
传送门gcd(x,n)gcd(x,n)gcd(x,n) 当nnn固定时,该函数是积性函数,因为对nnn质因数分解得到p1a1p2a2...pnanp_1^{a_1}p_2^{a_2}...p_n^{a_n}p1a1p2a2...pnan,那么gcd(x,n)=gcd(x,p1a1)∗gcd(x,p2a2)...gcd(x,pnan)gcd(x,n)=gcd(x,p_1^{a_1})*gcd(x,p_2^{a_2})...gcd(x,p_n^{a_n})gcd(x,n)=gcd(x,p1a1原创 2020-08-26 09:47:16 · 164 阅读 · 0 评论 -
莫比乌斯函数
莫比乌斯函数对于n≥0n \geq 0n≥0,设数nnn的唯一分解式为P1ρ1P2ρ2...PnρnP_1^{\rho_1}P_2^{\rho_2}...P_n^{\rho_n}P1ρ1P2ρ2...Pnρnμ(n)={1n=1(−1)sρ1=ρ2=...=ρs=10∃ρi≥2\mu(n) = \left\{\begin{array}{rcl} 1 && n=1 \\ (-1)^s && \rho_1=\rho_2=...=\rho_s=1 \\ 0 &a原创 2020-09-17 21:39:27 · 1540 阅读 · 1 评论 -
CodeForces - 665F Four Divisors(min_25筛)
传送门题目大意求出nnn以内只有四个因子的数,其实就是求出恰为两个素数相乘的数,这两个素数可以相同也可以不同解题思路首先考虑素数相同的数,那么我们可以枚举所有的素数,直到某个素数的三次方大于nnn结束。然后是素数不同的两个数,我们可以考虑固定某个素数,然后就是求出它的倍数在nnn的范围内有多少个,那么上界就是⌊np⌋\lfloor \frac{n}{p} \rfloor⌊pn⌋,但是我们要知道它的素数倍数有多少个,实际上就是求[p,⌊np⌋][p,\lfloor \frac{n}{p} \rfl原创 2020-10-10 08:38:06 · 313 阅读 · 0 评论 -
2020 CCPC网络赛 HDU - 6889 Graph Theory Class(分块打表/min_25筛)
传送门题目大意给出nnn个顶点和编号[1,n][1,n][1,n],现在定义两个点i,ji,ji,j的边权为lcm(i+1,j+1)lcm(i+1,j+1)lcm(i+1,j+1),求最小生成树解题思路分块打表本来以为这是一道图论题,但是打表之后半个小时发现了规律:实际上最后的答案就是[3,n+1][3,n+1][3,n+1]的和再加上[3,n+1][3,n+1][3,n+1]的素数和,然后就被卡住了,期间想到了分块打表,结果忘记了区间素筛,只想到了米勒罗宾纯暴力(赛后确实尝试了,五个小时出表,原创 2020-10-06 19:50:20 · 373 阅读 · 5 评论 -
LibreOJ - 6682 梦中的数论(min_25筛)
传送门题目大意求∑i=1n∑j=1n∑k=1n[(j∣i) && (j+k)∣i]\sum_{i=1}^n \sum_{j=1}^n \sum_{k=1}^n [(j|i) ~~\&\&~~ (j+k)|i]∑i=1n∑j=1n∑k=1n[(j∣i) && (j+k)∣i],即求jjj整除iii且j+kj+kj+k整除iii的个数的前缀和解题思路看到j∣ij原创 2020-10-06 19:27:22 · 158 阅读 · 0 评论 -
UOJ188 Sanrd(min_25筛)
传送门题目大意求∑i=1nf(i)\sum_{i=1}^nf(i)∑i=1nf(i),其中f(i)f(i)f(i)为:若i=1i=1i=1或者i∈primesi \in primesi∈primes,则f(i)=0f(i)=0f(i)=0若iii的唯一分解式(升序)为p1∗p1∗...∗p2∗p2∗...∗pn−1∗...∗pnp_1*p_1*...*p_2*p_2*...*p_{n-1}*...*p_np1∗p1∗...∗p2∗p2∗...∗pn−1∗...∗pn,则f(i)f(原创 2020-10-06 15:22:51 · 207 阅读 · 1 评论 -
LibreOJ - 6053 简单的函数(min_25筛)
传送门题目大意给定积性函数f(pk)=p⊕cf(p^k)=p \oplus cf(pk)=p⊕c,求∑i=1nf(i)\sum_{i=1}^nf(i)∑i=1nf(i)解题思路这个题目满足f(p)=p−1,p>2f(p)=p-1,p>2f(p)=p−1,p>2,且f(pk)f(p^k)f(pk)能够快速求出,而且数据范围也是线性筛解决不了的,杜教筛也无法构造,那么只能考虑亚线性筛,那么就是min_25min\_25min_25筛了min_25min\_25min_25筛传送门原创 2020-10-05 21:44:04 · 155 阅读 · 0 评论 -
min_25筛
问题引入求∑i=1nF(i)\sum_{i=1}^nF(i)∑i=1nF(i),F(i)F(i)F(i)是一个积性函数且F(pk)F(p^k)F(pk)为关于ppp低阶多项式,例如F(pk)=pk(pk−1)F(p^k)=p^k(p^k-1)F(pk)=pk(pk−1)。min_25筛 = 数论+DP+离散化min_25筛因为多项式可以拆分成多个单项式,所以我们只需考虑求出f(p)=pkf(p)=p^kf(p)=pk的前缀和,注意到f(i)f(i)f(i)是一个完全积性函数,在下面的运算中有着重要原创 2020-10-04 19:02:55 · 239 阅读 · 0 评论 -
HDU - 4676 Sum Of Gcd(莫比乌斯反演+莫队)
传送门题目大意给出数组aaa是nnn的排列,给定l,rl,rl,r,求出区间[al,ar][a_l,a_r][al,ar]所有的∑i=lr∑j=lrgcd(ai,aj)\sum_{i=l}^{r} \sum_{j=l}^{r} gcd(a_i,a_j)∑i=lr∑j=lrgcd(ai,aj)解题思路在莫比乌斯反演那里学到了这个公式:n=∑d∣nφ(d)n=\sum_{d|n}\varphi(d)n=∑d∣nφ(d)代入后得:∑i=lr∑j=lr∑d∣gcd(i,j)φ(d)\su原创 2020-09-30 10:32:53 · 193 阅读 · 0 评论 -
SPOJ5971 LCMSUM(反演+欧拉函数性质+积性函数(线性)筛)
传送门题目大意求∑i=1nlcm(i,n)\sum_{i=1}^nlcm(i,n)∑i=1nlcm(i,n)反演根据常见套路,首先我们化成含gcdgcdgcd的式子:∑i=1ni∗ngcd(i,n)\sum_{i=1}^n\frac{i*n}{gcd(i,n)}∑i=1ngcd(i,n)i∗n然后枚举gcd(i,n)gcd(i,n)gcd(i,n),得到n∑i=1n∑d=1,d∣nnid[gcd(i,n)=d]n\sum_{i=1}^n\sum_{d=1,d|n}^n\frac{i}{d}原创 2020-09-28 18:55:20 · 122 阅读 · 1 评论 -
洛谷 P3768 简单的数学题(莫比乌斯反演+杜教筛)
传送门题目大意求∑i=1n∑j=1ni∗j∗gcd(i,j)\sum_{i=1}^n\sum_{j=1}^ni*j*gcd(i,j)∑i=1n∑j=1ni∗j∗gcd(i,j)莫比乌斯反演在莫比乌斯反演那里学到了这个式子:n=∑d∣nφ(d)n=\sum_{d|n}\varphi(d)n=∑d∣nφ(d)那么将其代入上式可以得到:∑i=1n∑j=1ni∗j∑d∣gcd(i,j)φ(d)\sum_{i=1}^n\sum_{j=1}^ni*j\sum_{d|gcd(i,j)}\varphi(d原创 2020-09-27 19:38:35 · 200 阅读 · 0 评论 -
洛谷 P4449 于神之怒加强版(莫比乌斯反演+积性函数线性筛)
传送门题目大意给定n,m,kn,m,kn,m,k,计算∑i=1n∑j=1mgcd(i,j)k\sum_{i=1}^n \sum_{j=1}^mgcd(i,j)^k∑i=1n∑j=1mgcd(i,j)k反演部分方便起见设n≤m,gcd(i,j)⇔(i,j)n\leq m,gcd(i,j) \Leftrightarrow (i,j)n≤m,gcd(i,j)⇔(i,j)常用的转化思路,枚举gcdgcdgcd:∑i=1n∑j=1mgcd(i,j)k=∑i=1n∑j=1m∑d=1ndk[gcd(i,原创 2020-09-26 09:35:19 · 158 阅读 · 1 评论 -
狄利克雷卷积
Dirichlet卷积定义两个数论函数f,gf,gf,g的狄利克雷卷积h=f∗gh=f*gh=f∗g为:h(n)=(f∗g)(n)=∑d∣nf(d)g(nd)h(n)=(f*g)(n)=\sum_{d|n}f(d)g(\frac{n}{d})h(n)=(f∗g)(n)=∑d∣nf(d)g(dn)也可以表示为h(n)=(f∗g)(n)=∑d1d2=nf(d1)g(d2)h(n)=(f*g)(n)=\sum_{d_1d_2=n}f(d_1)g(d_2)h(n)=(f∗g)(n)=∑d1d2=nf原创 2020-09-25 19:30:27 · 310 阅读 · 1 评论 -
洛谷 P2257 YY的GCD(莫比乌斯反演)
传送门题目大意求∑i=1n∑i=1m[gcd(i,j)=p],p∈primes\sum_{i=1}^{n} \sum_{i=1}^m[gcd(i,j)=p],p \in primes∑i=1n∑i=1m[gcd(i,j)=p],p∈primes解题思路首先看到这个[gcd(i,j)=p][gcd(i,j)=p][gcd(i,j)=p],肯定要联想到如下变换gcd(i,j)=1⇔[1n]⇔∑d∣nμ(d)gcd(i,j)=1 \Leftrightarrow [\frac{1}{n}] \Left原创 2020-09-24 21:30:27 · 366 阅读 · 0 评论 -
洛谷 P1829 [国家集训队]Crash的数字表格(莫比乌斯反演)
传送门题目大意原创 2020-09-24 17:33:36 · 98 阅读 · 1 评论 -
洛谷 P2522 [HAOI2011]Problem b(容斥定理+莫比乌斯反演)
传送门题目大意求∑i=ab∑j=cd[gcd(i,j)=k]\sum_{i=a}^{b}\sum_{j=c}^{d}[gcd(i,j)=k]∑i=ab∑j=cd[gcd(i,j)=k]根据容斥定理:∑i=ab∑j=cdf(i,j)=∑i=1b∑j=1df(i,j)−∑i=1a−1∑j=1df(i,j)−∑i=1b∑j=1c−1f(i,j)+∑i=1a−1∑j=1c−1f(i,j)\sum_{i=a}^{b}\sum_{j=c}^{d}f(i,j)=\sum_{i=1}^{b}\sum_{j=1原创 2020-09-24 09:35:16 · 125 阅读 · 0 评论 -
洛谷 P3327 [SDOI2015]约数个数和(莫比乌斯反演)
传送门题目大意求∑i=1n∑j=1md(ij)\sum_{i=1}^n\sum_{j=1}^md(ij)∑i=1n∑j=1md(ij),其中d(ij)d(ij)d(ij)代表ijijij的约数个数解题思路一个重要的公式:d(ij)=∑x∣i∑y∣j[(x,y)=1]d(ij)=\sum_{x|i}\sum_{y|j}[(x,y)=1]d(ij)=∑x∣i∑y∣j[(x,y)=1],原式变为:f(n,m)=∑i=1n∑j=1m∑x∣i∑y∣j[(x,y)=1]f(n,m)=\sum_{i=1原创 2020-09-24 08:46:03 · 190 阅读 · 0 评论 -
莫比乌斯反演
莫比乌斯变换对于n∈Z+n \in Z_+n∈Z+,若有f(n)=∑d∣ng(d)f(n)=\sum_{d|n}g(d)f(n)=∑d∣ng(d),则称f(n)f(n)f(n)是g(n)g(n)g(n)的莫比乌斯变换。此时g(n)g(n)g(n)称为f(n)f(n)f(n)的逆变换莫比乌斯反演若f(n)f(n)f(n)是g(n)g(n)g(n)的莫比乌斯变换,或者说g(n)g(n)g(n)是f(n)f(n)f(n)的莫比乌斯逆变换,那么g(n)=∑d∣nμ(d)f(nd)g(n)= \sum_{d原创 2020-09-23 18:11:29 · 646 阅读 · 1 评论