【题目分析】

卷积一卷。

然后分块去一段一段的求。

O(n)即可。

【代码】

  1. #include <cstdio>
  2. #include <cstring>
  3. #include <iostream>
  4. #include <algorithm>
  5. using namespace std;
  6. #define maxn 100005
  7. #define ll long long
  8. #define F(i,j,k) for (ll i=j;i<=k;++i)
  9. ll n,m,pr[maxn],top,d;
  10. ll phi[maxn];
  11.  
  12. void init()
  13. {
  14. F(i,2,maxn-1)
  15. {
  16. if (!phi[i]) pr[++top]=i,phi[i]=i-1;
  17. for (ll j=1;j<=top&&(ll)pr[j]*i<(ll)maxn;++j)
  18. {
  19. if (i%pr[j]==0) {phi[i*pr[j]]=phi[i]*pr[j];break;}
  20. else phi[i*pr[j]]=phi[i]*phi[pr[j]];
  21. }
  22. }
  23. }
  24.  
  25. int main()
  26. {
  27. init();
  28. scanf("%d%d",&n,&m);
  29. F(i,1,maxn-1) phi[i]+=phi[i-1];
  30. ll ans=0;
  31. ll la,lb,nowa,nowb,l,r=n;
  32. while (r)
  33. {
  34. nowa=n/r; nowb=m/r;
  35. la=n/(nowa+1)+1;lb=m/(nowb+1)+1;
  36. l=max(la,lb);
  37. ans+=(ll)nowa*nowb*(phi[r]-phi[l-1]);
  38. r=l-1;
  39. }
  40. printf("%lld\n",n*m+2*ans);
  41. }

  

BZOJ 2005 [Noi2010]能量采集 ——Dirichlet积的更多相关文章

  1. BZOJ 2005: [Noi2010]能量采集

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MBSubmit: 3312  Solved: 1971[Submit][Statu ...

  2. BZOJ 2005: [Noi2010]能量采集( 数论 + 容斥原理 )

    一个点(x, y)的能量损失为 (gcd(x, y) - 1) * 2 + 1 = gcd(x, y) *  2 - 1. 设g(i)为 gcd(x, y) = i ( 1 <= x <= ...

  3. BZOJ 2005 [Noi2010]能量采集 (数学+容斥 或 莫比乌斯反演)

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MBSubmit: 4493  Solved: 2695[Submit][Statu ...

  4. bzoj 2005: [Noi2010]能量采集 筛法||欧拉||莫比乌斯

    2005: [Noi2010]能量采集 Time Limit: 10 Sec  Memory Limit: 552 MB[Submit][Status][Discuss] Description 栋栋 ...

  5. 【刷题】BZOJ 2005 [Noi2010]能量采集

    Description 栋栋有一块长方形的地,他在地上种了一种能量植物,这种植物可以采集太阳光的能量.在这些植物采集能量后,栋栋再使用一个能量汇集机器把这些植物采集到的能量汇集到一起. 栋栋的植物种得 ...

  6. BZOJ 2005: [Noi2010]能量采集(莫比乌斯反演)

    http://www.lydsy.com/JudgeOnline/problem.php?id=2005 题意:   思路: 首先要知道一点是,某个坐标(x,y)与(0,0)之间的整数点的个数为gcd ...

  7. BZOJ 2005: [Noi2010]能量采集 [莫比乌斯反演]

    题意:\((0,0)\)到\((x,y),\ x \le n, y \le m\)连线上的整点数\(*2-1\)的和 \((0,0)\)到\((a,b)\)的整点数就是\(gcd(a,b)\) 因为. ...

  8. bzoj 2005: [Noi2010]能量采集【莫比乌斯反演】

    注意到k=gcd(x,y)-1,所以答案是 \[ 2*(\sum_{i=1}^{n}\sum_{i=1}^{m}gcd(i,j))-n*m \] 去掉前面的乘和后面的减,用莫比乌斯反演来推,设n< ...

  9. BZOJ 2005: [Noi2010]能量采集(容斥+数论)

    传送门 解题思路 首先题目要求的其实就是\(\sum\limits_{i=1}^n \sum\limits_{j=1}^m [(gcd(i,j)-1)*2+1)]\),然后变形可得\(-n*m+2\s ...

随机推荐

  1. 洛谷 P1340 兽径管理

    题目描述 约翰农场的牛群希望能够在 N 个(1<=N<=200) 草地之间任意移动.草地的编号由 1到 N.草地之间有树林隔开.牛群希望能够选择草地间的路径,使牛群能够从任一 片草地移动到 ...

  2. FTP的环境搭建和防火墙设置

    步骤: 1.右键点击无线网--->打开网络和共享中心--->控制面板--->程序--->启用或关闭Wondows功能

  3. 补题—Codeforces Round #346 (Div. 2) _智商欠费系列

    这次的题目相对容易 但是智商依旧不够用 原因有三点 1.英文水平堪忧 2 逻辑不严密 3 细节掌握不够好 传送门 http://codeforces.com/contest/659 A 题目大意 圆环 ...

  4. Google Colab调用cv2.imshow奔溃

    当我在Google Colab运行如下代码 import cv2 import numpy as np image = cv2.imread('a.jpg') cv2.imshow('original ...

  5. go语音实战读后感——一

    1.第一个go程序: package main import ( "fmt" ) func main() { fmt.Println("Hello go") } ...

  6. 爬虫学习之pdf读取和存储

    在py3中如需进行pdf文件操作需要加载PDFMiner3K库文件,可通过pip方式或者可以下载源文件方式安装 python3 -m pip install pdfminer3k 下载源文件方式: 1 ...

  7. mac系统下android studio创建手机模拟器

    打开android studio,点击右上角的模拟器图标,打开“Android Virtual Device Manager” 窗口,如下图   点击“Create Virtual Device”,在 ...

  8. 浅谈倍增LCA

    题目链接:https://www.luogu.org/problemnew/show/P3379 刚学了LCA,写篇blog加强理解. LCA(Least Common Ancestors),即最近公 ...

  9. 菜鸟学习Cocos2d-x 3.x——内存管理

    菜鸟学习Cocos2d-x 3.x——内存管理 2014-12-10 分类:Cocos2d-x / 游戏开发 阅读(394) 评论(6)    亘古不变的东西 到现在,内存已经非常便宜,但是也不是可以 ...

  10. 简单css动画 fadeIn fadeOut flash

    考虑兼容性采用 -webkit- -o- -mos- -ms- @keyframes fadeIn{ 0%{ opacity: 0; display: block; } 100%{ opacity: ...