题面

题解

$$ \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;
}

【POI2007】ZAP-Queries的更多相关文章

  1. 【BZOJ】【1101】【POI2007】Zap

    莫比乌斯反演 PoPoQQQ的讲义例一的一半……好吧这题是那题的基础部分= =很水…… WA了一次:因为没强制类型转换LL /************************************* ...

  2. 【Luogu3455】【POI2007】ZAP-Queries(莫比乌斯反演)

    [Luogu3455][POI2007]ZAP-Queries(莫比乌斯反演) 题面 题目描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x ...

  3. 【题解】Zap(莫比乌斯反演)

    [题解]Zap(莫比乌斯反演) 裸题... 直接化吧 [P3455 POI2007]ZAP-Queries 所有除法默认向下取整 \[ \Sigma_{i=1}^x\Sigma_{j=1}^y[(i, ...

  4. bzoj1101【POI007】Zap

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1950  Solved: 735 [id=1101" ...

  5. 【BZOJ】【1103】【POI2007】大都市meg

    dfs序 模板题,进点+1出点-1,刚好对于不在路径上的点一进一出刚好抵消,由于本题要动态修改(变成公路以后+1-1都变成0)所以在序列上套一个树状数组即可. TLE:1.递归dfs给爆了……写了个手 ...

  6. bzoj1103【POI2007】大都市meg

    1103: [POI2007]大都市meg Time Limit: 10 Sec  Memory Limit: 162 MB Submit: 1544  Solved: 776 [Submit][St ...

  7. 【BZOJ1101】Zap [莫比乌斯反演]

    Zap Time Limit: 10 Sec  Memory Limit: 162 MB[Submit][Status][Discuss] Description 对于给定的整数a,b和d,有多少正整 ...

  8. 【bzoj1103】【POI2007】【大都市】(树状数组+差分)

    在经济全球化浪潮的影响下,习惯于漫步在清晨的乡间小路的邮递员Blue Mary也开始骑着摩托车传递邮件了.不过,她经常回忆起以前在乡间漫步的情景.昔日,乡下有依次编号为1..n的n个小村庄,某些村庄之 ...

  9. 【BZOJ1101】Zap(莫比乌斯反演)

    题意:多组询问,对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d. T,a,b,d,x,y<=50000 思路:下底函数分块+积性函数 ...

随机推荐

  1. ARM汇编之MOV指令

    http://blog.csdn.net/lsywk/article/details/8799837 一.指令格式 MOV{条件}{S}  目的寄存器,源操作数 二.指令详解 MOV指令可完成从另一个 ...

  2. IPUtils 工具类

    package com.hxqc.basic.dependency.util; import org.apache.commons.lang.StringUtils; import javax.ser ...

  3. Java java httpclient4.5 进行http,https通过SSL安全验证跳过,封装接口请求 get,post(formdata,json)封装,文件上传下载

    package api; import java.util.*; import java.net.URI; import org.apache.http.Consts; import org.apac ...

  4. PAT——1028. 人口普查

    某城镇进行人口普查,得到了全体居民的生日.现请你写个程序,找出镇上最年长和最年轻的人. 这里确保每个输入的日期都是合法的,但不一定是合理的——假设已知镇上没有超过200岁的老人,而今天是2014年9月 ...

  5. 修改jupyter notebook的默认路径

    我的系统环境是win10,安装了anaconda3 for python 3.6.6首先需要配置notebook的变量环境:打开 cmd 输入命令 jupyter notebook --generat ...

  6. mysql修改数据表自增步长

    可以修改系统变量 auto_increment_increment mysql> SHOW VARIABLES LIKE 'auto_inc%'; +---------------------- ...

  7. iOS 封装一个带复制功能的UILabel

    我们发现UILabel不在为我们提供长按弹出复制等操作了, 我们来继承UILabel自己写一个带复制功能的UILabel. 代码: #import "CopyLabel.h" @i ...

  8. Mybatis-smart(Mybatis最终优化方案)

    Hibernate: 我用了Hibernate一年多,可以说是饱经风雨,感受极深,Hibernate看似一个很好的框架,我简单说一下它的使用痛点, 1.作为开发人员,我们应该全新全意关注我们的功能业务 ...

  9. vue+element 页面输入框--回车导致页面刷新的问题

    el-form 后面加上 @submit.native.prevent

  10. Flink-on-yarn

    介绍 官网下载 https://www.apache.org/dyn/closer.lua/flink/flink-1.6.1/flink-1.6.1-bin-hadoop28-scala_2.11. ...