[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…