http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1220

$G(n)=\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{k=1}^{n^2}[k|ij]\cdot k$
$ \small{[k|ij]\to[\frac{k}{gcd(i,k)}|j]}$
$G(n)=\sum\limits_{i=1}^n\sum\limits_{j=1}^n\sum\limits_{k=1}^{n^2}[\frac{k}{gcd(i,k)}|j]\cdot k$
$ \small{gcd(i,k)\to g,i/g\to i,\sum\limits_{j=1}^X[Y|j]\to \lfloor\frac XY\rfloor}$
$G(n)=\sum\limits_{k=1}^{n^2}\sum\limits_{g|k}\sum\limits_{i=1}^{n/g}[gcd(i,k/g)=1]\lfloor\frac{n}{k/g}\rfloor\cdot k$
$ \small{k/g\to k}$
$G(n)=\sum\limits_{g=1}^{n}\sum\limits_{k=1}^{n}\sum\limits_{i=1}^{n/g}[gcd(i,k)=1]\lfloor\frac{n}{k}\rfloor\cdot k\cdot g$
$\small{[X=1]\to\sum\limits_{d|X}\mu(d)}$
$G(n)=\sum\limits_{g=1}^{n}\sum\limits_{k=1}^{n}\sum\limits_{i=1}^{n/g}\sum\limits_{d|i\wedge d|k}\mu(d)\lfloor\frac{n}{k}\rfloor\cdot k\cdot g$
$\small{i/d\to i,k/d\to k}$
$G(n)=\sum\limits_{d=1}^n\sum\limits_{g=1}^{n/d}\sum\limits_{k=1}^{n/d}\sum\limits_{i=1}^{n/gd}\mu(d)\lfloor\frac{n}{kd}\rfloor\cdot k\cdot g\cdot d$
$\small{\sum\limits_{i=1}^X1\to X}$
$G(n)=\sum\limits_{d=1}^n\sum\limits_{g=1}^{n/d}\sum\limits_{k=1}^{n/d}\mu(d)\lfloor\frac{n}{gd}\rfloor\lfloor\frac{n}{kd}\rfloor\cdot k\cdot g\cdot d$
$\small{\big(\sum\limits_{i=1}^{n}i\lfloor\frac{n}{d}\rfloor\big)^2\to F(n)}$
$G(n)=\sum\limits_{d=1}^n\mu(d)d\cdot F(\lfloor\frac{n}{d}\rfloor)$
$\small{G\to \sum g,F\to \sum f}$
$g(n)=\sum \limits_{d|n}\mu(d)d\cdot f(n/d)$
$f(n)=\sum \limits_{d|n}d\cdot g(n/d)$
$\small{\sum f\to F,\sum g\to G}$
$F(n)=\sum\limits_{d=1}^nd\cdot G(\lfloor\frac{n}{d}\rfloor)$
$G(n)=F(n)-\sum\limits_{d=2}^nd\cdot G(\lfloor\frac{n}{d}\rfloor)$

记录一下推公式过程。

最后用记忆化搜索就可以$O(n^{3/4})$过了,如果加上线性预处理可以做到$O(n^{2/3})$

#include<bits/stdc++.h>
typedef unsigned long long i64;
const int P=1e9+;
int n,vG[],vg[],B;
int G(int n){
int&ans=n<=B?vg[n]:vG[::n/n];
if(ans)return ans;
i64 s=,sx=n*;
for(int l=,r,c;l<n;l=r){
r=n/(c=n/(l+));
i64 t=i64(r+l+)*(r-l);
sx+=t*c;
s+=t%P*G(c);
if(s>i64(1.5e19))s%=P;
}
sx=sx/%P;
s=(sx*sx%P-s%P*((P+)/)%P+P)%P;
return ans=s;
}
int main(){
scanf("%d",&n);
B=sqrt(n);
printf("%d\n",G(n));
return ;
}

51nod1220 约数之和的更多相关文章

  1. [51nod1220] 约数之和(杜教筛+莫比乌斯反演)

    题面 传送门 题解 嗯--还是懒得写了--这里 //minamoto #include<bits/stdc++.h> #define R register #define IT map&l ...

  2. 51NOD 1220 约数之和 [杜教筛]

    1220 约数之和 题意:求\(\sum_{i=1}^n \sum_{j=1}^n \sigma_1(ij)​\) \[ \sigma_0(ij) = \sum_{x\mid i}\sum_{y\mi ...

  3. 【动态规划】mr359-最大公约数之和

    [题目大意] 选取和不超过S的若干个不同的正整数,使得所有数的约数(不含它本身)之和最大. 输入一个正整数S. 输出最大的约数之和. 样例输入 Sample Input 11 样例输出 Sample ...

  4. 51Nod 约数之和

                              1220 约数之和                                  题目来源: Project Euler 基准时间限制:3 秒 ...

  5. 约数之和(POJ1845 Sumdiv)

    最近应老延的要求再刷<算法进阶指南>(不得不说这本书不错)...这道题花费了较长时间~(当然也因为我太弱了)所以就写个比较易懂的题解啦~ 原题链接:POJ1845 翻译版题目(其实是AcW ...

  6. [51Nod 1220] - 约数之和 (杜教筛)

    题面 令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) 题目分析 ...

  7. POJ1845Sumdiv题解--约数之和

    题目链接 https://cn.vjudge.net/problem/POJ-1845 分析 \(POJ\)里的数学题总是这么妙啊 首先有一个结论就是\(A=\prod{ \ {p_i}^{c_i} ...

  8. 【51nod1220】约数之和

    题目 d(k)表示k的所有约数的和.d(6) = 1 + 2 + 3 + 6 = 12. 定义S(N) = ∑1<=i<=N ∑1<=j<=N d(i*j). 例如:S(3) ...

  9. ZZNU 正约数之和

    #include<stdio.h> #include<string.h> #include<math.h> #include<time.h> #incl ...

随机推荐

  1. dos2章

    讲FOR之前呢,咋先告诉各位新手朋友,如果你有什么命令不懂,直接在CMD下面输入: name /? 这样的格式来看系统给出的帮助文件,比如for /? 就会把FOR命令的帮助全部显示出来!当然许多菜鸟 ...

  2. nginx 配置 HTTPS 及http 强制跳转https.

    #user nobody; worker_processes 1; #error_log logs/error.log; #error_log logs/error.log notice; #erro ...

  3. 'touch' 不是内部或外部命令,也不是可运行的程序或批处理文件。

    touch是Linux环境下的命令,当我们在cmd中使用时会弹出以下问题 在cmd中我们可以使用echo test> 然后我们用dir命令来查看一下当前文件夹下文件有没有创建 文件成功创建.

  4. 5--Postman上传文件

    请求: charles抓到请求信息: request: --21b63bd3-1543-46cf-ab25-eaa5adf82688Content-Disposition: form-data; na ...

  5. 高分一号计算NDVI

    1.准备工作 如果想要ENVI友好一点,请下载ENVI5.3,并且安装China satellites 补丁(参考博客:ENVI扩展工具:中国国产卫星支持工具) App Store for ENVI下 ...

  6. Day01_Python学习今日收获

    1.关键字 break:终止本层循环,即如果是双层嵌套循环,那么就终结最内层循环 注意:如果在for或while循环中终止,他们任何对应的else语句块也将不执行. 2.关键字continue:跳过当 ...

  7. 2018-2019-2 网络对抗技术 20165228 Exp2 后门原理与实践

    2018-2019-2 网络对抗技术 20165228 Exp2 后门原理与实践 (1)例举你能想到的一个后门进入到你系统中的可能方式? 在使用盗版软件,盗版系统,甚至游戏外挂时,往往会让我们关闭杀毒 ...

  8. sqlalchemy关于时间的数据类型

    #导入模块 from sqlalchemy import Column, Integer, String, Date, create_engine from sqlalchemy.ext.declar ...

  9. Vue.js devtool插件安装后无法使用的解决办法【最简单有效的解决方法】

    在开发vue相关的项目时,使用vue devtools工具是一件极其有趣的事,你所有的操作都马上给你实时反馈. 然而有时候安装好的工具,在chrome中不显示. 在网上找过多次,一直没有找到有效解决方 ...

  10. 2018.5.24 lvm创建pool

    在调试生产环境时遇到以下情况: 好奇心驱使下,发现是lvm的一个功能——lvm创建pool,就手动创建了相似的环境,操作截图如下: 主要命令: vgcreate -s 32M vg /dev/vdb1 ...