莫比乌斯反演
文章平均质量分 92
FSYo
我不去想是否能够成功,
既然选择了远方,
便只顾风雨兼程
展开
-
【WC2014】时空穿梭(莫比乌斯反演)(组合数学)
传送门 考虑枚举各维最大最小坐标的差量 Δi\Delta_iΔi,可以写出式子:Ans=∑Δ(gcd(Δ1...n)−1c−2)∏i=1n(mi−Δi)=∑d(d−1c−2)∑Δ∏i=1n(mi−dΔi)[gcd(Δ1...n)=1]=∑d(d−1c−2)∑lμ(l)∑Δ(∏i=1nmi−dlΔi)=∑T∏i=1n(∑jmi/Tmi−Tj)∑l∣Tμ(l)(d−1c−2)Ans=\sum_{\Delta}\binom{gcd(\Delta_{1...n})-1}{c-2}\prod_{i=1}^n (m原创 2020-06-05 12:43:00 · 287 阅读 · 0 评论 -
【省选模拟】20/04/07 羊 (莫比乌斯反演)(杜教筛 / min25)
今天被打爆了。。。题解单独写 题意:求 ∑k=1n∑i=1k∑j=1kgcd(i,j,k)\sum_{k=1}^n\sum_{i=1}^k\sum_{j=1}^kgcd(i,j,k)k=1∑ni=1∑kj=1∑kgcd(i,j,k) 简单反演 Ans=∑k∑d∣kd∑i∑j[gcd(i,j,k)=d]=∑k∑d∣kd∑ik/d∑jk/d[gcd(i,j,k/d)=1]=∑k∑d∣kd...原创 2020-04-07 17:14:45 · 190 阅读 · 1 评论 -
【HDU6711】Touma Kazusa's function(莫比乌斯反演)(莫队)
传送门 显然枚举 ai,aja_i,a_jai,aj 很不好看,我们改成枚举数值,直接莫比乌斯反演 Ans=∑dndφ(d)∑in/d∑jn/dij[(i,j)=1]cntidcntjd=∑ddφ(d)∑ln/dμ(l)(∑l∣iicntid)(∑l∣jjcntjd)=∑ddφ(d)∑lμ(l)l2(∑in/dlicntidl)2=∑T(∑in/TicntiT)2(∑d∣Tdφ(d)μ(Td...原创 2020-04-02 23:26:56 · 428 阅读 · 1 评论 -
NOI2016 循环之美(莫比乌斯反演)(杜教筛)
传送门 考虑什么样的 xy\frac{x}{y}yx 可以成为纯循环小数 设其循环节为 LLL,那么有 xy∗kL−xy\frac{x}{y}*k^L-\frac{x}{y}yx∗kL−yx 为整数 每一对贡献在 gcd(x,y)=1gcd(x,y)=1gcd(x,y)=1 的时候统计,于是上面这个条件可以转换为 ∃L,s.t,kL−1≡0(mod y)\exists L,s.t,...原创 2020-01-04 21:01:12 · 233 阅读 · 0 评论 -
SDOI2018 旧试题(莫比乌斯反演)(三元环计数)
传送门 旧试题 ---- 约数个数和 ? 利用那道题的推论,发现 d(ijk)=∑p∣i∑q∣j∑r∣k[(p,q)=1][(q,r)=1][(p,r)=1]d(ijk)=\sum_{p|i}\sum_{q|j}\sum_{r|k}[(p,q)=1][(q,r)=1][(p,r)=1]d(ijk)=p∣i∑q∣j∑r∣k∑[(p,q)=1][(q,r)=1][(p,r)=1] 证明类似不再赘...原创 2019-12-19 22:02:51 · 196 阅读 · 0 评论 -
51nod1584 加权约数和 (莫比乌斯反演)
传送门 如果求出 f(n)=∑i∑j≤ii∗σ(ij),g(n)=∑ii∗σ(i2)f(n)=\sum_i\sum_{j\le i}i*\sigma(ij),g(n)=\sum_i i*\sigma(i^2)f(n)=∑i∑j≤ii∗σ(ij),g(n)=∑ii∗σ(i2) 那么 2∗f(n)−g(n)2*f(n)-g(n)2∗f(n)−g(n) 就是答案 有一个结论是 σ0(ij)=∑d∣...原创 2019-12-19 21:48:01 · 149 阅读 · 0 评论 -
SDOI2018 反回文串 (计数)(Pollard-Rho)(莫比乌斯反演)
传送门 一直没敢动,但发现前几天做过一道类似的回文串计数,发现这道题也没有想象中的难 考虑一个回文串能转出来几个不同的串 显然是循环节大小这么多个,考虑让一个回文串的贡献为它的循环节的大小 但发现这样子是算重了的,一个回文串有可能转出一个更它不同的回文串 发现这种情况只会在串长为偶数的情况出现一次,于是我们让偶数串的贡献为 1/21/21/2 的循环节大小即可 用一个函数 h(n)h(n)h(n)...原创 2019-12-19 21:28:05 · 242 阅读 · 0 评论 -
【51nod1355】斐波那契的最小公倍数(min - max容斥)(容斥)(反演)
题意: 给 mmm 个数 aia_iai,求 lcm(fib(ai))lcm(fib(a_i))lcm(fib(ai)),m≤4e5,ai≤1e6m\le 4e5, a_i\le 1e6m≤4e5,ai≤1e6,对 1e9+71e9+71e9+7 取模 首先我们知道斐波那契数列的一些性质 gcd(fibi,fibi−1)=1gcd(fib_i,fib_{i-1})=1gcd(fibi,...原创 2019-12-11 18:24:15 · 196 阅读 · 0 评论 -
CSP-S 模拟 轻飘飘的时间 (莫比乌斯反演)(杜教筛)(Lucas)
题意:给定 n,m,dn,m,dn,m,d,求 ∑i=1n∑j=1m(gcd(i,j)B)\sum_{i=1}^n\sum_{j=1}^m\binom{gcd(i,j)}{B}i=1∑nj=1∑m(Bgcd(i,j)) 直接反演 ∑d=1n(dB)∑l=1ndμ(l)⌊ndl⌋⌊mdl⌋\sum_{d=1}^n\binom{d}{B}\sum_{l=1}^{\frac{n}{d}}\mu (...原创 2019-11-06 13:45:57 · 266 阅读 · 0 评论 -
太阳神 [莫比乌斯反演]
比较容易想到,先将 > n 转换成 <= n 然后就可以直接暴力枚举 l,然后快速计算 (d, i, j) 的对数 不妨设 d <= i <= j,然后 d 只需要枚举到, i 从 d 开始枚举到, 就可以暴力怼过 #include<bits/stdc++.h> #define N 100050 using namespace std; ty...原创 2019-08-09 21:39:01 · 273 阅读 · 0 评论 -
[BZOJ4305] 数列的GCD [容斥/莫比乌斯反演+组合数学]
传送门 考虑答案为 gcd 的倍数的情况就要好做很多 设 cnt 为 d 的倍数的个数 考虑容斥,发现 #include<bits/stdc++.h> #define N 300050 using namespace std; typedef long long ll; const int Mod = 1000000007; ll add(ll a, ll b){ ...原创 2019-08-09 21:24:18 · 202 阅读 · 0 评论 -
BZOJ2671 Calc [莫比乌斯反演]
传送门 设 d = gcd(a, b), a = ud, b = vd 因为 gcd(u, v) = 1, 所以 gcd(u+v, v) = gcd(u+v, u) = 1 然后卡一下上界 枚举 k 的时候再整除分块就可以直接怼过去 #include<bits/stdc++.h> #define N 100050 using namespace st...原创 2019-08-09 20:40:42 · 252 阅读 · 0 评论 -
[WOJ3575] Lucas的数论[莫比乌斯反演+杜教筛]
传送门 反演一波 枚举k,l 发现n/t 总共有根号n个取值, 每算一次前缀和是根号n的 可以证明时间复杂度是n^3/4, mu用杜教筛 #include<bits/stdc++.h> #define N 2000050 #define Mod 1000000007 #define LL long long #define M 50050 using nam...原创 2019-02-19 13:15:21 · 254 阅读 · 0 评论 -
[bzoj3561] DZY Loves Math VI [莫比乌斯反演]
传送门 来自巨神zxyoi学长 强烈推荐哦 https://blog.csdn.net/zxyoi_dreamer/article/details/86761985#BZOJ3561DZY_Loves_Math_VI_4580 #include<bits/stdc++.h> #define N 500050 #define LL long long #define...原创 2019-02-18 23:27:59 · 182 阅读 · 0 评论 -
[bzoj3309]DZY Loves Math [莫比乌斯反演+蜜汁线性筛]
传送门 很容易推出 令 然后考虑预处理g(T) 的前缀和, n<=10^7 只有线性筛 来自巨神zxyoi 半懂半懂的, 对于线性筛一些函数的问题, 先留一个坑 #include<bits/stdc++.h> #define N 10000050 #define LL long long using namespace std; int g...原创 2019-02-18 20:32:27 · 186 阅读 · 0 评论 -
[SDOI2015]约数个数和 [莫比乌斯反演]
传送门 用整除分块预处理 发现对于连续的d , n/d的取值一样 , 也就是说 的取值一样 , 然后就可以整除分块做了 #include<bits/stdc++.h> #define N 50050 #define LL long long using namespace std; int T,n,m,tot; LL s_mu[N],s_f[N]; int ...原创 2018-12-16 12:40:19 · 132 阅读 · 0 评论 -
莫比乌斯反演 [转载]
传送门 虽然我不会 , 还是留个坑原创 2018-12-10 23:27:30 · 118 阅读 · 0 评论 -
[POI2007]ZAP-Queries [莫比乌斯反演]
传送门 对于本题 (一下来源于luogu题解) 然后求一个mu的前缀和 , 整除分块搞一下 #include<bits/stdc++.h> #define N 50051 #define LL long long using namespace std; int mu[N],prim[N],isp[N],s[N],T,tot; void Init(){ mu[...原创 2018-12-11 21:10:36 · 139 阅读 · 0 评论 -
YY的GCD [hard] [莫比乌斯反演]
传送门 题解传送门 #include<bits/stdc++.h> #define N 10000005 #define LL long long using namespace std; int p[N],isp[N],mu[N],f[N],T,tot; LL s[N]; void Init(){ mu[1]=1; for(int i=2;i<...原创 2018-12-11 22:00:17 · 207 阅读 · 0 评论 -
P3312 [SDOI2014] 数表
传送门 先来一波常规操作 然后再来一波经常使用的"换一个枚举" 令 发现我们需要处理 g[d] 的前缀和, 又要保证当前的F[k]<=a 所以我们将询问按a排序, 然后动态将F[k]<=a 的插入树状数组 考虑一个F[x]对哪些有贡献 F[x] 对 g[x] 有 F[x] * mu[1]的贡献 F[x] 对 g[x*2] 有 F[x] * mu[2...原创 2019-02-16 14:42:28 · 292 阅读 · 0 评论 -
Crash的数字表格 [莫比乌斯反演][神题]
传送门 发现有点棘手, 不妨把k放出来 是时候反演了 令 有 则 可以整除分块做, 只不过要预处理mu[k]*k^2 这里又可以整除分块... #include<bits/stdc++.h> #define N 10000050 #define LL long long #define Mod 20101009 using namesp...原创 2019-02-16 23:07:20 · 234 阅读 · 0 评论 -
BZOJ 2694 Lcm [莫比乌斯反演]
传送门 然后将mu不为0的(没有平方因子)的h按调和级数枚举倍数算贡献就可以了 #include<bits/stdc++.h> #define N 4000050 #define LL long long #define P (1<<30) using namespace std; int T; int prim[N],isp[N],tot,mu[N]; L...原创 2019-02-17 13:10:47 · 308 阅读 · 0 评论 -
P3768 简单的数学题 [莫比乌斯反演+杜教筛]
传送门 用杜教筛筛就可以了(g 设为Id^2) #include<bits/stdc++.h> #define N 10000050 #define LL long long using namespace std; LL P,n; int prim[N],isp[N],tot; LL phi[N]; map<LL,LL> Phi; LL in...原创 2019-02-17 17:06:58 · 338 阅读 · 0 评论 -
[SDOI2017]数字表格 [莫比乌斯反演]
传送门 反演模板吧... 到最后一步就是 然后预处理f(k) * mu(T/k)的前缀和与inv, 整除分块就可以了 #include<bits/stdc++.h> #define N 1000050 #define Mod 1000000007 #define LL long long using namespace std; int T; int prim[N], i...原创 2019-02-17 20:23:22 · 193 阅读 · 0 评论 -
P5176 公约数 [莫比乌斯反演][线性筛积性函数]
传送门 来自zxy学长, 强烈推荐哦 关于最后一个的证明: 首先p为n的最小质因子, 那么np一定含有p因子的平方项, 如果保留的话对mu是没有贡献的 也就是说对f(n)有贡献的d, 只有d*p对 f(n*p)有贡献 关于线性筛函数, 考虑 等于1 为质数 -> 代入两个端点 不包含最小质因子 -> 积性函数的性质 包含最小...原创 2019-02-17 21:07:34 · 277 阅读 · 0 评论 -
P4240 毒瘤之神的考验[莫比乌斯反演][神题]
传送门 我们知道 然后常规反演一波 可以得到 然后设 可以调和级数预处理 然后设 因为y的<=n/x, 所以空间和时间都是nlogn的 发现有一些连续的T使x,y是相等的, 可以整除分块 而当T>sqrt(n) 时, x,y的取值是连续的, 我们可以预处理这一部分的答案, 然后整除分块 而当T<sqrt(n) 时, 总共循环T次就...原创 2019-02-23 11:49:41 · 222 阅读 · 0 评论 -
P3172 [CQOI2015]选数 [莫比乌斯反演+杜教筛]
传送门 然后就是整除分块+杜教筛 #include<bits/stdc++.h> #define N 5000050 #define Mod 1000000007 #define LL long long using namespace std; int n,k,L,R; int prim[N], isp[N], tot, mu[N]; map<int,int&...原创 2019-02-18 19:29:03 · 171 阅读 · 0 评论 -
[HAOI2011]Problem b [莫比乌斯反演]
传送门 很明显类似矩阵前缀和一样查4次 , 然后就是莫比乌斯反演模板了 #include<bits/stdc++.h> #define N 50050 #define LL long long using namespace std; int mu[N],p[N],tot,isp[N],s[N],a,b,c,d,k; LL Q(int n,int m,int k){ if(n&...原创 2018-12-12 20:39:32 · 131 阅读 · 0 评论