题面

题解

$$ \sum_{i=1}^a\sum_{j=1}^b[gcd(i,\;j)=d] \\ =\sum_{i=1}^{\left\lfloor\frac ad\right\rfloor}\sum_{j=1}^{\left\lfloor\frac bd\right\rfloor}[gcd(i,\;j)=1] \\ =\sum_{i=1}^p\mu(i)\lfloor\frac a{id}\rfloor\lfloor\frac b{id}\rfloor $$

筛一下$\mu$即可

代码

#include<bits/stdc++.h>
#define RG register
#define clear(x, y) memset(x, y, sizeof(x));
using namespace std; inline int read()
{
int data=0, w=1;
char ch=getchar();
while(ch!='-'&&(ch<'0'||ch>'9')) ch=getchar();
if(ch=='-') w=-1, ch=getchar();
while(ch>='0'&&ch<='9') data=(data<<3)+(data<<1)+(ch^48), ch=getchar();
return data*w;
} const int maxn(100010);
int mu[maxn], prime[maxn], cnt, sum[maxn], n=100000, T, a, b, d;
bool not_prime[maxn]; inline void getMu()
{
not_prime[1]=true; mu[1]=1;
for(RG int i=2;i<=n;i++)
{
if(!not_prime[i]) prime[++cnt]=i, mu[i]=-1;
for(RG int j=1;j<=cnt && i*prime[j] <= n;j++)
{
not_prime[i*prime[j]]=true;
if(i%prime[j]) mu[i*prime[j]]=-mu[i];
else { mu[i*prime[j]]=0; break; }
}
}
for(RG int i=1;i<=n;i++) sum[i]=sum[i-1]+mu[i];
} inline long long solve(int a, int b, int d)
{
a/=d; b/=d;
if(a > b) swap(a, b);
long long ans=0;
RG int i=1, j, k, l;
while(i<=a)
{
k=a/i; l=b/i;
j=min(a/k, b/l);
ans+=1ll*(sum[j]-sum[i-1])*k*l;
i=j+1;
}
return ans;
} int main()
{
getMu();
T=read();
while(T--) a=read(), b=read(), d=read(), printf("%lld\n", solve(a, b, d));
return 0;
}

最新文章

  1. java支持跨平台获取cpuid、主板id、硬盘id、mac地址 (兼容windows、Linux)
  2. java中异常抛出后代码是否会继续执行
  3. Python在Windows下安装第三方库浅谈
  4. UVALive 4949 Risk(二分网络流、SAP)
  5. Linux awk
  6. getElementsByName()以及获取checkbox对应文本text,
  7. 使用TypeScript开发程序
  8. jquery.unobtrusive-ajax.js单独的用法
  9. Machine Learning for Developers
  10. javascript 通用loading动画效果
  11. LSH算法原理
  12. python-多线程(原理篇)
  13. linux 下 tomcat 之 配置静态资源路径
  14. CSS中设置border:none和border:0的区别
  15. PORTE_ISFR &amp; (1&lt;&lt;n)
  16. Maven-03: 优化依赖
  17. 02. Install redis on Linux
  18. [Swift]LeetCode481. 神奇字符串 | Magical String
  19. java程序员的NodeJS初识篇
  20. OpenGL——OpenCV与SOIL读取图片进行纹理贴图

热门文章

  1. 创建 JavaScript 对象
  2. 【bootstrap】.container与.container_fluid
  3. 【转】如何开发自己的HttpServer-NanoHttpd源码解读
  4. PDF压缩,在线压缩免费
  5. 解决Linux 安装python3 .5 解决pip 安装无法成功问题ssl安全拦截无法pip安装库问题
  6. Python KafkaProducer and KafkaConsumer的开发模块
  7. php多进程编程实现与优化
  8. linux下安装swoole扩展
  9. 离线服务器下docker的部署与应用
  10. volatile关键字到底做了什么?