51NOD 1220 约数之和 [杜教筛]】的更多相关文章

1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)​\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mid j}[(x,y)=1]\\ \sigma_1(ij) = \sum_{x\mid i}\sum_{y\mid j}x\cdot\frac{j}{y}[(x,y)=1] \\ \] 怎么证明第二个式子? \[ \sigma_1(n) = \prod_i(1 + p_i + p_i^2 + ...…
题面 令d(n)d(n)d(n)表示nnn的约数之和求 ∑i=1n∑j=1nd(ij)\large\sum_{i=1}^n\sum_{j=1}^nd(ij)i=1∑n​j=1∑n​d(ij) 题目分析 先给结论 d(ij)=∑x∣i∑y∣jxj/y[(x,y)==1]\large d(ij)=\sum_{x|i}\sum_{y|j}xj/y[(x,y)==1]d(ij)=x∣i∑​y∣j∑​xj/y[(x,y)==1] 可以通过 传送门 类似的证明方法证明 拖更- AC code #includ…
首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \] \[ \sum_{p=1}^{n}\sum_{q=1}^{n}[gcd(p,q)==1]\sum_{p|i}\sum_{q|j}\frac{pj}{q} \] \[…
[题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varphi *I)(i)=\sum_{i=1}^{n}\sum_{d|i}\varphi(d)=\sum_{i=1}^{n}\sum_{d=1}^{\frac{n}{i}}\varphi(d)$ 根据$id=\varphi*I$,$\sum_{i=1}^{n}(\varphi*I)(i)=\frac{i(i+1)…
题目链接 map: //杜教筛 #include<map> #include<cstdio> typedef long long LL; const int N=5e6; int mu[N+3],P[N+3],cnt; bool Not_P[N+3]; std::map<LL,LL> sum; //std::map<LL,LL>::iterator it; void Init() { mu[1]=1; for(int i=2;i<N;++i) { if…
题目描述 求∑i=1n∑j=1n(i,j) mod (1e9+7)n<=1010\sum_{i=1}^n\sum_{j=1}^n(i,j)~mod~(1e9+7)\\n<=10^{10}i=1∑n​j=1∑n​(i,j) mod (1e9+7)n<=1010 题目分析 乍一看十分像裸莫比乌斯反演,然而nnn的范围让人望而却步 于是先变化一下式子 Ans=∑i=1n∑j=1n(i,j)Ans=\sum_{i=1}^n\sum_{j=1}^n(i,j)Ans=i=1∑n​j=1∑n​(i,j…
题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 杜教筛裸题,不过现在我也只会筛这俩前缀和... $$s(n)=\sum _{i=1}^{n}f(i)$$ 那么就有: $$\sum_{i=1}^{n}f(i)\lfloor \frac{n}{i} \…
1239 欧拉函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目.此函数以其首名研究者欧拉命名,它又称为Euler's totient function.φ函数.欧拉商数等.例如:φ(8) = 4(Phi(8) = 4),因为1,3,5,7均和8互质. S(n) = Phi(1) + Phi(2) + -- Phi(n),给出n,求S(n),例如:n = 5,S(n) = 1 +…
1244 莫比乌斯函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号.具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0.例如:miu(4), miu(12), miu(18) = 0. 如果一个数不包含平方因子,并且有k个不同的质因子,那么miu(n) = (-1)^k.例如:miu(2), mi…
虽然都写了,过也过了,还是觉得杜教筛的复杂度好玄学 设f*g=h,∑f=S, 则∑h=∑f(i)S(n/i下取整) 把i=1时单独拿出来,得到 S(n)=(∑h-∑2->n f(i)S(n/i下取整) 右边的部分可以分块解决 递归一下,≤一个阈值的暴力表出来 注意阈值以上的也要记忆化 复杂度不会算,但从本题来看过1e10没问题 #include <bits/stdc++.h> #define MAX 5000000 using namespace std; long long a,b,N…
题意:求$\sum_{i=1}^n \sum_{j=1}^n gcd(i,j),n<=1e10$ 之前刚好在UVA上也做过一个这样求和的题目,不过那个数据范围比较小,一开始用类似的方法 $ans=\sum_{i=1}^n \sum_{j=1}^i gcd(i,j)-\sum_{i=1}^n i$ 先考虑化简$\sum_{i=1}^n gcd(i,n)$变成好求和的形式 $$\begin{aligned} \sum_{i=1}^n gcd(i,n) &=\sum_{i=1}^n \sum_{d…
1227 平均最小公倍数 题意:求\(\frac{1}{n} \sum_{i=1}^n lcm(n,i)\) 和的弱化版? \[ ans = \frac{1}{2}((\sum_{i=1}^n \sum_{d=1}^{\lfloor \frac{n}{i} \rfloor} d\cdot \varphi(d) ) - \sum_{i=1}^n) \] 求\(id\cdot \varphi\)的前缀和,卷上\(id\)就行了 我竟然把整除分块打错了,直接i++,gg #include <iostr…
和上一题差不多,一个是μ*I=e,一个是φ*I=Id 稍改就得到了这题的代码 (我会告诉你我一开始逆元算错了吗) #include <bits/stdc++.h> #define MAX 5000000 #define MOD 1000000007 using namespace std; long long a,b,N; ],p[MAX],ans[MAX]; ]; long long work(long long n) { if(n<=MAX) return phi[n]; if(an…
[题目链接] https://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 [题目大意] 求[1,n][1,n]最大公约数之和 [题解] 枚举最大公约数k,得到答案为2*∑(k*phi_sum(n/k))-n*(n+1)/2 phi_sum可以利用杜教筛实现 [代码] #include <cstdio> #include <algorithm> using namespace std; typedef lon…
51nod 1244 莫比乌斯函数之和 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens)首先使用μ(n)(miu(n))作为莫比乌斯函数的记号.具体定义如下: 如果一个数包含平方因子,那么miu(n) = 0.例如:miu(4), miu(12), miu(18) = 0. 如果一个数不包含平方因子,并且有k个不同的质因子,那么miu(n) = (-1)^k.例如:miu(2), miu(3), miu(30) = -1,miu(1), miu(6), miu(10)…
[题目链接] http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1244 [题目大意] 计算莫比乌斯函数的区段和 [题解] 利用杜教筛: 求F(n)=∑(f(i)) 存在g=f*I,定义G(n)=∑(g(i)) 就可以得到F(n)=G(n)-∑(F(n/i)) 加一些预处理我们可以做到O(n^(2/3))求解F(n) 我们知道积性函数∑(miu(d))=0(d|n),又有∑(miu(d))=1(n=1), 所以∑∑(miu…
1237 最大公约数之和 V3 题意:求\(\sum_{i=1}^n\sum_{j=1}^n(i,j)\) 令\(A(n)=\sum_{i=1}^n(n,i) = \sum_{d\mid n}d \cdot \varphi(\frac{n}{d})\) \(ans = 2*\sum_{i=1}^n A(i) -\sum_{i=1}^ni\) 套路推♂倒 \[ S(n) =\sum_{i=1}^n\sum_{d\mid i}d \cdot \varphi(\frac{i}{d}) =\sum_{i…
题目传送门 http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1237 数学题真是做的又爽又痛苦,爽在于只要推出来公式基本上就是AC,痛苦就在于推公式... 题意很简单,求 $\Large\sum\limits_{i=1}^{n}\sum\limits_{j=1}^{n}gcd(i,j)$ 其中$n\le 10^{10}$ 这个题有很多做法,除了普及组的$O(n^2\log n)$做法,还有用莫比乌斯反演+分块优化的$O(…
题目链接 \(Description\) \(n\leq 10^{10}\),求 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)\ mod\ (1e9+7)\] \(Solution\) 首先 \[\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{d=1}^nd\sum_{i=1}^n\sum_{j=1}^n[gcd(i,j)=d]\] 注意不是\(\sum_{i=1}^n\sum_{j=1}^ngcd(i,j)=\sum_{d=1}^n\sum…
[题意]给定n,求Σi=1~nΣj=1~n lcm(i,j),n<=10^10. [算法]杜教筛 [题解]就因为写了这个非常规写法,我折腾了3天…… $$ans=\sum_{i=1}^{n}\sum_{j=1}^{n}lcm(i,j)$$ 令 $$g(n)=n*\sum_{i=1}^{n}\frac{i}{(n,i)}$$ 那么 $$ans(n)=2*g(n)-\sum_{i=1}^{n}i$$ 枚举gcd,化简g(n). $$g(n)=n*\sum_{d|n}1/d\sum_{i=1}^{n}…
首先题目中给出的代码打错了,少了个等于号,应该是 G=0; for(i=1;i<=N;i++) for(j=1;j<=N;j++) { G = (G + lcm(i,j)) % 1000000007; } 然后就是大力推公式: \[ \sum_{i=1}^{n}\sum_{j=1}^{n}lcm(i,j) \] \[ =\sum_{i=1}^{n}\sum_{j=1}^{n}\frac{ij}{gcd(i,j)} \] \[ =\sum_{d=1}^{n}\sum_{i=1}^{n}\sum_…
用mu写lcm那道卡常卡成狗(然而最后也没卡过去,于是写一下gcd冷静一下 首先推一下式子 \[ \sum_{i=1}^{n}\sum_{j=1}^{n}gcd(i,j) \] \[ \sum_{i=1}^{n}\sum_{j=1}^{n}\sum_{d=1}^{n}[gcd(i,j)==d]d \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd(i,j)==d] \] \[ \sum_{d=1}^{n}d\sum_{i=1}^{\left…
题目描述 求∑i=1N∑j=1Nlcm(i,j)\sum_{i=1}^N\sum_{j=1}^Nlcm(i,j)i=1∑N​j=1∑N​lcm(i,j) 2<=N<=10102<=N<=10^{10}2<=N<=1010 题目分析 这道题题面跟[bzoj 2693] jzptab & [bzoj 2154] Crash的数字表格一样,然而数据范围加强到了101010^{10}1010,莫比乌斯反演不行了了,所以我们看看怎样玄学杜教筛 Ans=∑i=1n∑j=1n…
题目 戳这里 推导 ∑i=1n∑j=1nlcm(i,j)~~~\sum_{i=1}^{n}\sum_{j=1}^{n}lcm(i,j)   ∑i=1n​∑j=1n​lcm(i,j) =∑i=1n∑j=1nijgcd(i,j)=\sum_{i=1}^{n}\sum_{j=1}^{n}\frac{ij}{gcd(i,j)}=∑i=1n​∑j=1n​gcd(i,j)ij​ =∑i=1nd−1∑i=1n∑j=1nij[gcd(i,j)==d]=\sum_{i=1}^{n}d^{-1}\sum_{i=1}…
[51NOD 1847]奇怪的数学题(莫比乌斯反演,杜教筛,min_25筛,第二类斯特林数) 题面 51NOD \[\sum_{i=1}^n\sum_{j=1}^nsgcd(i,j)^k\] 其中\(sgcd\)表示次大公约数. 题解 明摆着\(sgcd\)就是在\(gcd\)的基础上除掉\(gcd\)的最小因数. 所以直接枚举\(gcd\). \[\begin{aligned} ans&=\sum_{i=1}^n\sum_{j=1}^n sgcd(i,j)^k\\ &=\sum_{i=1…
[51Nod 1244] - 莫比乌斯函数之和 求∑i=1Nμ(i)\sum_{i=1}^Nμ(i)∑i=1N​μ(i) 开推 ∑d∣nμ(d)=[n==1]\sum_{d|n}\mu(d)=[n==1]d∣n∑​μ(d)=[n==1] 移项 μ(d)=[n==1]−∑d∣n,d<nμ(d)∴S(N)=∑i=1Nμ(i)=∑i=1N([i==1]−∑d∣i,d<iμ(d))=1−∑i=1N∑d∣i,d<iμ(d)\mu(d)=[n==1]-\sum_{d|n,d<n}\mu(d)\…
题意:求\(\sum_{i = 1}^{n}\sum_{j = 1}^{n}lcm(i, j)\). 题解:虽然网上很多题解说用mu卡不过去,,,不过试了一下貌似时间还挺充足的,..也许有时间用phi试试? 因为是用的莫比乌斯函数求的,所以推导比大部分题解多...而且我写式子一般都比较详细,所以可能看上去很多式子,实际上是因为每一步都写了,几乎没有跳过的.所以应该都可以看懂的. 末尾的\(e\)函数是指的\(e[1] = 1\),\(e[x] = 0(x != 1)\)这样一个函数 \[\sum…
1222 最小公倍数计数 题意:求有多少数对\((a,b):a<b\)满足\(lcm(a,b) \in [1, n]\) \(n \le 10^{11}\) 卡内存! 枚举\(gcd, \frac{a}{gcd}, \frac{b}{gcd}\),然后\(\mu\)代入,就是 \[ \sum_{d=1}^{\sqrt{n}}\mu(d) \sum_i \sum_j \sum_k [ijk \le \frac{n}{d^2}] \] 问题就是怎么求后面的式子了 一开始我是 \[ f(n) = \s…
题意 给定 \(n\) ,求 \(\sum_{i=1}^n \sum_{j=1}^n lcm(i,j)\). \(n\leq 10^{10}\) 分析 推式子 \[\begin{aligned} ans &= 2\sum_{i=1}^n\sum_{j=1}^ilcm(i,j)-\sum_{i=1}^nlcm(i,i) \\ &=2\sum_{i=1}^n \sum_{j=1}^i \frac{ij}{(i,j)}-\frac{n(n+1)}{2} \\ &=2\sum_{d=1}^…
题面 传送门 题解 话说--就一个杜教筛--刚才那道拿过来改几行就行了-- //minamoto #include<bits/stdc++.h> #define R register #define ll long long #define IT map<ll,int>::iterator #define fp(i,a,b) for(R int i=a,I=b+1;i<I;++i) #define fd(i,a,b) for(R int i=a,I=b-1;i>I;--…