题面

令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
  1. #include <cstdio>
  2. #include <map>
  3. #include <algorithm>
  4. using namespace std;
  5. typedef long long LL;
  6. const int MAXN = 1e6 + 1, mod = 1e9 + 7;
  7. int Prime[MAXN/10], Cnt, mu[MAXN];
  8. bool IsnotPrime[MAXN];
  9. inline void init(int n)
  10. {
  11. mu[1] = 1;
  12. for(int i = 2; i <= n; ++i)
  13. {
  14. if(!IsnotPrime[i])
  15. Prime[++Cnt] = i, mu[i] = -1;
  16. for(int j = 1, v; j <= Cnt && i * Prime[j] <= n; ++j)
  17. {
  18. v = i * Prime[j];
  19. IsnotPrime[v] = 1;
  20. if(i % Prime[j] == 0) { mu[v] = 0; break; }
  21. mu[v] = -mu[i];
  22. }
  23. }
  24. for(int i = 1; i <= n; ++i)
  25. mu[i] = (mu[i-1] + i*mu[i]%mod) % mod;
  26. }
  27. map<int, int>s;
  28. inline int f(int i, int j) //i+(i+1)+...+j
  29. {
  30. return ((LL)(i+j) * (j-i+1)/2) % mod;
  31. }
  32. inline int sum(int n) //mu(1)1+mu(2)2+...+mu(n)n
  33. {
  34. if(n < MAXN) return mu[n];
  35. if(s.count(n)) return s[n];
  36. int ret = 1;
  37. for(int i = 2, j; i <= n; i=j+1)
  38. {
  39. j = n/(n/i);
  40. ret = (ret - (LL)f(i,j) * sum(n/i) % mod) % mod;
  41. }
  42. return s[n]=ret;
  43. }
  44. inline int calc(int n)
  45. {
  46. int ret = 0, k;
  47. for(int i = 1, j; i <= n; i=j+1)
  48. {
  49. j = n/(n/i); k = n/i;
  50. ret = (ret + (LL)(j-i+1) * (((LL)k*(k+1)/2)%mod) % mod) % mod;
  51. }
  52. return ret;
  53. }
  54. inline int solve(int n)
  55. {
  56. int ret = 0, last = 0, tmp, tmp2;
  57. for(int i = 1, j; i <= n; i=j+1)
  58. {
  59. tmp = sum(j = n/(n/i)), tmp2 = calc(n/i), tmp2 = (LL)tmp2 * tmp2 % mod;
  60. ret = (ret + (LL)(tmp - last) * tmp2 % mod) % mod;
  61. last = tmp;
  62. }
  63. return ret;
  64. }
  65. int main ()
  66. {
  67. int n; init(MAXN-1);
  68. scanf("%d", &n);
  69. printf("%d\n", (solve(n)+mod)%mod);
  70. }

[51Nod 1220] - 约数之和 (杜教筛)的更多相关文章

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

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

  2. 51nod 1220 约数之和【莫比乌斯反演+杜教筛】

    首先由这样一个式子:\( d(ij)=\sum_{p|i}\sum_{q|j}[gcd(p,q)==1]\frac{pj}{q} \)大概感性证明一下吧我不会证 然后开始推: \[ \sum_{i=1 ...

  3. 【51nod】1239 欧拉函数之和 杜教筛

    [题意]给定n,求Σφ(i),n<=10^10. [算法]杜教筛 [题解] 定义$s(n)=\sum_{i=1}^{n}\varphi(i)$ 杜教筛$\sum_{i=1}^{n}(\varph ...

  4. 51Nod.1244.莫比乌斯函数之和(杜教筛)

    题目链接 map: //杜教筛 #include<map> #include<cstdio> typedef long long LL; const int N=5e6; in ...

  5. [51Nod 1237] 最大公约数之和 (杜教筛+莫比乌斯反演)

    题目描述 求∑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 ...

  6. 【51nod-1239&1244】欧拉函数之和&莫比乌斯函数之和 杜教筛

    题目链接: 1239:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1239 1244:http://www.51nod. ...

  7. 51 NOD 1239 欧拉函数之和(杜教筛)

    1239 欧拉函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 对正整数n,欧拉函数是小于或等于n的数中与n互质的数的数目.此函数以其首名研究 ...

  8. 51 NOD 1244 莫比乌斯函数之和(杜教筛)

    1244 莫比乌斯函数之和 基准时间限制:3 秒 空间限制:131072 KB 分值: 320 难度:7级算法题 收藏 关注 莫比乌斯函数,由德国数学家和天文学家莫比乌斯提出.梅滕斯(Mertens) ...

  9. 51nod1244 莫比乌斯函数之和 杜教筛

    虽然都写了,过也过了,还是觉得杜教筛的复杂度好玄学 设f*g=h,∑f=S, 则∑h=∑f(i)S(n/i下取整) 把i=1时单独拿出来,得到 S(n)=(∑h-∑2->n f(i)S(n/i下 ...

随机推荐

  1. CF723D 【Lakes in Berland】

    题目链接 题解 CF723D [Lakes in Berland] 首先将边界的水用bfs处理掉 再将中间的每一个湖泊处理出来,存入一个结构体内,结构体里记录湖泊大小和开始点 将湖泊排序从小往大填满, ...

  2. golang微服务框架go-micro 入门笔记2.2 micro工具之微应用利器micro web

    micro web micro 功能非常强大,本文将详细阐述micro web 命令行的功能 阅读本文前你可能需要进行如下知识储备 golang分布式微服务框架go-micro 入门笔记1:搭建go- ...

  3. 全栈项目|小书架|服务器端-NodeJS+Koa2 实现评论功能

    评论功能分析 上图可以看出评论功能主要实现了:评论的发布.评论列表的展示. 在不考虑子评论以及图片评论的场景下,评论功能主要有以下两个接口: 发布评论 获取评论列表(考虑分页) 评论 Model 的建 ...

  4. np.minimum()与tf.minimum()的用法

    总结:二者用法一致.a=np.array([[[[10,8,3,9],[5,6,7,8]]],[[[1,2,3,4],[5,6,7,8]]],[[[1,2,3,4],[5,6,7,8]]]] )pri ...

  5. PHP基于TP5使用Websocket框架之GatewayWorker开发电商平台买家与卖家实时通讯

    前段时间公司提了一个新的需求,在商品的详情页要实现站内买家和商品卖家实时通讯的功能以方便沟通促成交易,要开发此功能当时首先考虑到的就是swoole和workerman了,从网上大概了解了一下关于这两款 ...

  6. 对于flex布局的使用心得

    弹性盒子flex: 对于客户端的布局非常有用,不管是平均分配space-around这个属性还是两端对齐space-betwee在页面布局的时候都会有很好的表现. 对于部分内容区域中,具有很多大致内容 ...

  7. react性能优化要点

    1.减少render方法的调用 1.1继承React.PureComponent(会自动在内部使用shouldComponentUpdate方法对state或props进行浅比较.)或在继承自Reac ...

  8. 笔谈HTTP Multipart POST请求上传文件

    公司一做iOS开发的同事用HTTP Multipart POST请求上传语音数据,但是做了两天都没搞定,项目经理找到我去帮忙弄下.以前做项目只用过get.post,对于现在这个跟服务器交互的表单请求我 ...

  9. Hive性能优化【核心思想、运行模式、并行计算】

    一.核心思想 把HQL当做MapReduce程序去优化. 注意,以下SQL不会转为MapReduce执行: 1.select仅查询本表字段. 2.where仅对本表字段做条件过滤. 二.启动Hive ...

  10. 常用docker管理UI

    1. HumpBacks 特性 Web UI Supporting, Easy to use. Container Grouping and Isolation. Container Upgrades ...