题面

题目要我们求的东西可以化为:

\[\sum_{i=1}^{n}\sum_{j=1}^{m}2*gcd(i,j)-1
\]

\[-nm+2\sum_{i=1}^{n}\sum_{j=1}^{m}gcd(i,j)
\]

\(\sum_{i=1}^{n}\sum_{j=1}^{m}gcd(i,j)=\)

\[\sum_{i=1}^{n}\sum_{j=1}^{m}\sum_{d|i,d|j}\phi(d)
\]

\[\sum_{d=1}^{n}\sum_{i=1}^{\lfloor \frac{n}{d} \rfloor}\sum_{j=1}^{\lfloor \frac{m}{d}\rfloor}\phi(d)
\]

\[\sum_{d=1}^{n}\phi(d){\lfloor\frac{n}{d}\rfloor}{\lfloor\frac{m}{d}\rfloor}
\]

所以原式为:

\[-nm+2\sum_{d=1}^{n}\phi(d)\lfloor\frac{n}{d}\rfloor\lfloor\frac{m}{d}\rfloor
\]

暴力枚举\(d\)计算即可

PS:这类带有\(gcd(i,j)\)的式子用欧拉反演会比暴力枚举约数方便很多,比如说这题

代码:

#include<bits/stdc++.h>
using namespace std;
#define N 100007
#define ll long long
const int lim=1e5;
int pr[N],cnt,phi[N];
bool zhi[N];
void Init()
{
int i,j;
phi[1]=1;
for(i=2;i<=lim;i++)
{
if(!zhi[i])pr[++cnt]=i,phi[i]=i-1;
for(j=1;j<=cnt&&i*pr[j]<=lim;j++)
{
int p=pr[j],x=i*p;
zhi[x]=true;
if(i%p==0){phi[x]=phi[i]*p;break;}
phi[x]=phi[i]*(p-1);
}
}
}
int main()
{
int n,m,i;
ll ans=0;
Init();
scanf("%d%d",&n,&m);
ans=-1ll*n*m;
ll sum=0;
for(i=1;i<=n;i++)
sum+=1ll*phi[i]*(n/i)*(m/i);
ans+=2*sum;
printf("%lld\n",ans);
return 0;
}

最新文章

  1. [转]在Eclipse中使用JUnit4进行单元测试(中级篇)
  2. Servlet解决参数乱码问题
  3. POJ 1149PIGS 网络流 最大流
  4. HotApp
  5. 使用 xtrabackup 进行MySQL数据库物理备份
  6. UML类图基本元素符号
  7. IOS Bug分析
  8. Altera SoC 内核更新3.7到3.10
  9. Storm的本地运行模式示例
  10. Sublime Text主题下载、安装与配置
  11. 《HelloGitHub》第 18 期
  12. 【python标准库模块三】Os模块和Sys模块学习
  13. Linux Debugging(一): 使用反汇编理解C++程序函数调用栈
  14. IO密集型和计算密集型
  15. 程序设计第三次作业---C++计算器雏形
  16. SQL Server 2012安装step by step
  17. Lightning Chart 8.4版新功能
  18. Link Cut Tree 总结
  19. AAAI 2018 论文 | 蚂蚁金服公开最新基于笔画的中文词向量算法
  20. Python使用读写excel文件

热门文章

  1. Kruskal算法&amp;Prim算法
  2. VUE组件2数据传递
  3. vue路由切换时内容组件的滚动条回到顶部
  4. MongoDB 分片集群实战
  5. 【Spring Cloud】Spring Cloud之Zipkin server搭建以及HTTP收集,分布式服务跟踪(2)
  6. 基于PXE网络启动的Linux系统自动化安装
  7. Python系统运维常用库
  8. zabbix4.0自动发现主机
  9. PHP中的匿名类
  10. 第五篇 -- Xml序列化