
莫比乌斯与卷积
wanherun
今天会有好事发生吗
展开
-
bzoj3994 [SDOI2015]约数个数和
题目反演的经典套路题目。对于这种题,套路无非就是先用狄利克雷卷积一下,然后交换求和顺序,最后就能化为一个 n√\sqrt n的求和了。对于交换顺序这个事,只要注意一下各个变量的依赖关系就好了。对于这道题来说:∑ni=1∑mj=1d(i,j)=∑ni=1∑mj=1[ni][mj][gcd(i,j)==1]\sum_{i=1}^n \sum_{j=1}^md(i,j)=\sum_{i=1}^n \sum原创 2017-12-03 19:27:53 · 446 阅读 · 0 评论 -
bzoj2440 [中山市选2011]完全平方数
题目首先,直接得出答案貌似不太可能,我们可以先二分一个答案,这样就成了计数问题了,就是求前n个数中,有多少个数没有平方因子。很显然的一点,就是μ\mu值不为0的数有多少个,但是,这样是算不出来的,因为太大了,所以我们就要想一想办法。考虑容斥原理,发现前面的系数刚好为μ\mu值,最后我们只需要算一个求和式子∑x√i=1[xi2]\sum^{\sqrt{x}}_{i=1}[\frac{x}{i^2}]就原创 2018-02-01 13:36:52 · 240 阅读 · 0 评论 -
bzoj3529 [Sdoi2014]数表
题目如果不考虑a的限制,这道题就简化了一下。令f(x)f(x)表示x的约数和,g(x)=∑ni=1∑mj=1[gcd(i,j)==x]g(x)=\sum^{n}_{i=1}\sum^{m}_{j=1}[gcd(i,j)==x] 那么,ans=∑ni=1f(i)g(i)ans=\sum^{n}_{i=1}f(i)g(i),由某道题可得g(i)g(i)的表达式。 YY的GCD g(i)=∑i|dμ原创 2018-02-01 14:17:34 · 243 阅读 · 0 评论 -
莫比乌斯函数学习笔记
(1) 定义 e(n)=⟮1 n=10 n≠1e(n)=\lgroup^{1\ n=1}_{0\ n\neq1} I(n)=1I(n)=1 id(n)=nid(n)=n σ0(n)因子个数\sigma_{0}(n) 因子个数 σ1(n)因数和\sigma_{1}(n)因数和 μ(n)莫比乌斯函数\mu(n)莫比乌斯函数 φ(n)欧拉函数\varphi(n)欧拉函数 (2)原创 2018-02-01 16:07:00 · 1737 阅读 · 0 评论 -
杜教筛学习笔记
考虑求解以下问题: ∑ni=1μ(i)\sum^{n}_{i=1}\mu(i) ∑ni=1φ(i)\sum^{n}_{i=1}\varphi(i) ∑n(i=1)μ(i)ik\sum^{n}_(i=1)\mu(i)i^k令M(i)=∑ni=1μ(i)M(i)=\sum^{n}_{i=1}\mu(i) 发现 ∑ni=1M([ni])=∑ni=1∑[ni]j=1μ(j)\sum^{n}_原创 2018-02-01 19:23:21 · 276 阅读 · 0 评论 -
bzoj3944 Sum
题目杜教筛第一题。数学推导过程详见这里具体实现的时候要用一个hash表或者map存一下,其实感觉两个东西差不多快。想要提高速度应该调一调M的大小,可以三分试一试呀。#include<bits/stdc++.h>#define ll long long #define M 4500000using namespace std;int prime[M+5],notp[M+5],cnt;ll m原创 2018-02-02 10:01:53 · 323 阅读 · 0 评论 -
loj125 杜教筛
题目由题目猜算法系列。已知f(n)=∑d|ng(d)与g(n)=2n2+3n+5,求∑ni=1f(i)已知f(n)=\sum_{d|n}g(d)与g(n)=2n^2+3n+5,求\sum_{i=1}^{n}f(i) 令F(i)=∑ni=1f(i)F(i)=\sum_{i=1}^{n}f(i) 则发现(前面的系数需要凑一凑) ∑ni=1μ(i)F([ni])=∑ni=1μ(i)∑[ni]j=1f原创 2018-02-02 10:14:41 · 437 阅读 · 1 评论 -
bzoj2820 YY的GCD
题目这肯定要用卷积的,我们来推一推公式。我们先令n=min(n,m)n=min(n,m),m=max(m,n)m=max(m,n)则 ans=∑p∑ni=1∑mj=1gcd(i,j)==pans=\sum^{}_{p}\sum^{n}_{i=1}\sum^{m}_{j=1}gcd(i,j)==p ans=∑p∑[np]i=1∑[mp]j=1gcd(i,j)==1ans=\sum^{}_{p}\s原创 2018-02-01 11:49:25 · 326 阅读 · 0 评论 -
bzoj2154 Crash的数字表格
题目lcm求和,比gcd求和难多了。。各种求和交换顺序,233。还要求个奇性函数。。。#include<bits/stdc++.h>#define MAXN 10000000#define mod 20101009#define inv 10050505#define LL long longusing namespace std;bool P[MAXN+1];int prime[MA原创 2017-08-31 07:39:46 · 161 阅读 · 0 评论 -
bzoj2818 Gcd
题目bzoj第一题,竟然不是1000,233,自己也是可以的。。经典莫比乌斯反演。。。#include<iostream>#include<algorithm>#include<cstdio>#include<cstdlib>#include<string>#include<cstring>#include<cmath>#define MAXN 10000000#define LL原创 2017-08-31 07:40:47 · 259 阅读 · 0 评论 -
bzoj2301 [HAOI2011]Problem b
题目莫比乌斯第一题。。。还不是很熟悉,当时半推公式半找规律的。。 233 数学题,就是要多练习啊。#include<bits/stdc++.h>#define MAXN 50000#define LL long longusing namespace std;int prime[MAXN+1],size=0,mu[MAXN+1];int sum_mu[MAXN+1];bool P[M原创 2017-09-02 20:53:20 · 303 阅读 · 0 评论 -
bzoj2005 [Noi2010]能量采集
题目又是一道反演题。。。首先,一个点的价值是gcd(x,y)*2-1 我们就求一个gcd求和用phi卷一下就好了。详情请见dalao博客#include<bits/stdc++.h>#define LL long long#define N 1000000using namespace std;LL prime[N+1],siz,phi[N+1];bool P[N+1];void i原创 2017-09-09 16:17:36 · 237 阅读 · 0 评论 -
bzoj2190 [SDOI2008]仪仗队
题目为什么别人都用的欧拉函数呀。。 只有我用莫比乌斯函数吗,233。看一看,只要gcd==1就好了,这不就是卷积一下莫比乌斯吗。。。#include<bits/stdc++.h>#define MAXN 40000using namespace std;int n;int P[MAXN+1],prime[MAXN+1],mu[MAXN+1],siz;int nex;int Ans;i原创 2017-09-12 10:35:43 · 242 阅读 · 0 评论 -
bzoj2705 [SDOI2012]Longge的问题
题目简单题,狄利克雷卷积一下就好了。最开始我还以为线性筛就可以了。怕是失了智。#include<bits/stdc++.h>using namespace std;long long n,m,ans;inline char nc(){ static char buf[100000],*p1=buf,*p2=buf; return p1==p2&&(p2=(p1=buf)+fr原创 2017-09-24 21:04:27 · 219 阅读 · 0 评论 -
bzoj4916 神犇和蒟蒻
题目首先,由μ\mu的性质知道,第一问的答案一定为1。考虑第二问。 φ(i2)=iφ(i)\varphi(i^2)=i\varphi(i) 令Φ(i)=∑ni=1iφ(i)\Phi(i)=\sum_{i=1}^{n}i\varphi(i) 则发现 ∑ni=1iΦ([ni])=∑ni=1i∑[ni]j=1jφ(j)\sum_{i=1}^{n}i\Phi([\frac{n}{i}])=\原创 2018-02-02 10:26:24 · 304 阅读 · 0 评论