Description

  FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a

,y<=b,并且gcd(x,y)=d。作为FGD的同学,FGD希望得到你的帮助。


\[ans=\sum_{i=1}^{a}\sum_{j=1}^{b}[gcd(i,j)=d]
\]

反演一波

\[ans=\sum_{i=1}^{a}\sum_{j=1}^{b}\sum_{k|i \wedge k|j}\mu(k)
\]

把\(k\)提前

\[ans=\sum_{k=1}^{min(a,b)}\mu(k)\lfloor\frac{a}{dk}\rfloor\lfloor\frac{b}{dk}\rfloor
\]

没啦


#include<iostream>
#include<cstdio>
#include<cstring>
#include<queue>
#define M 50001
#define R register
#define swap(a,b) c=a,a=b,b=c;
//#define gc getchar
using namespace std; int m,n,k,p[M],mu[M],b[M],cnt,t,ans,c;
int v[M][3],maxx; inline void ptt(int x)
{
R int s[20]={0};
while(x) s[++s[0]]=x%10, x/=10;
for(R int i=s[0];i;i--) putchar(s[i]+'0');
if(!s[0]) putchar('0');
putchar(10);
} inline char gc()
{
static char now[1<<22],*S,*T;
if (T==S)
{
T=(S=now)+fread(now,1,1<<22,stdin);
if (T==S) return EOF;
}
return *S++;
}
inline int read()
{
register int x=0,f=1;
register char ch=gc();
while(!isdigit(ch))
{
if (ch=='-') f=-1;
ch=gc();
}
while(isdigit(ch)) x=(x<<1)+(x<<3)+ch-'0',ch=gc();
return x*f;
} inline int min(int a,int b)
{
if(a<b) return a;
return b;
} void Muu(int N)
{
mu[1]=1;
for(R int i=2;i<N;i++)
{
if(!b[i]) mu[i]=-1, p[++cnt]=i;
for(R int j=1;j<=cnt && p[j]*i<N;j++)
{
b[p[j]*i]=1; if(i%p[j]==0) break;
mu[p[j]*i]=-mu[i];
}
}
for(int i=2;i<N;i++) mu[i]+=mu[i-1];
} int main()
{
t=read();
for(int i=1;i<=t;i++)
{
v[i][0]=read(), v[i][1]=read(), v[i][2]=read();
maxx=max(maxx,min(v[i][0],v[i][0]));
}
Muu(maxx+1);
for(R int i=1;i<=t;i++)
{
n=v[i][0], m=v[i][1], k=v[i][2];
if(n>m) swap(n,m); ans=0; n/=k, m/=k;
for(R int l=1,r;l<=n;l=r+1)
{
r=min(n/(n/l),m/(m/l));
ans+=(n/l)*(m/l)*(mu[r]-mu[l-1]);
}
ptt(ans);
}
}

1101: [POI2007]Zap的更多相关文章

  1. BZOJ 1101: [POI2007]Zap

    1101: [POI2007]Zap Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 2262  Solved: 895[Submit][Status] ...

  2. BZOJ 1101: [POI2007]Zap( 莫比乌斯反演 )

    求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得 ...

  3. 1101: [POI2007]Zap(莫比乌斯反演)

    1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MB Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定 ...

  4. 【BZOJ】1101: [POI2007]Zap(莫比乌斯+分块)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1101 无限膜拜数论和分块orz 首先莫比乌斯函数的一些性质可以看<初等数论>或<具 ...

  5. BZOJ 1101 [POI2007]Zap(莫比乌斯反演)

    [题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1101 [题目大意] 求[1,n][1,m]内gcd=k的情况 [题解] 考虑求[1,n ...

  6. bzoj 1101 [POI2007]Zap——反演

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 #include<cstdio> #include<cstring& ...

  7. BZOJ 1101 [POI2007]Zap | 第一道莫比乌斯反(繁)演(衍)

    题目: http://www.lydsy.com/JudgeOnline/problem.php?id=1101 题解: http://www.cnblogs.com/mrha/p/8203612.h ...

  8. BZOJ 1101 [POI2007]Zap ——Dirichlet积

    [题目分析] Dirichlet积+莫比乌斯函数. 对于莫比乌斯函数直接筛出处理前缀和. 对于后面向下取整的部分,可以分成sqrt(n)+sqrt(m)部分分别计算 学习了一下线性筛法. 积性函数可以 ...

  9. 【BZOJ】1101 [POI2007]Zap(莫比乌斯反演)

    题目 传送门:QWQ 分析 莫比乌斯反演. 还不是很熟练qwq 代码 //bzoj1101 //给出a,b,d,询问有多少对二元组(x,y)满足gcd(x,y)=d.x<=a,y<=b # ...

随机推荐

  1. SimpleScalar Course Project

    https://blog.csdn.net/wahaha_nescafe/article/details/8500186 https://blog.csdn.net/wahaha_nescafe/ar ...

  2. web开发基础--字节序

    字节是网络传输上的最小单位,是web开发中需要了解的一个知识点. 1.有效位 在谈字节序前需要先了解有效位,有效位分为两种:最低有效位(LSB: Least Significant Bit) 和最高有 ...

  3. 【java基础】从反射开始(Reflection)

    Java学习笔记 https://github.com/SnailDev/java-learning 和我一起启程... 反射(Reflection) 定义 在运行状态中, 对于任意的一个类,都能够知 ...

  4. 新项目找不到Angular-cli.json文件

    新项目找不到Angular-cli.json文件 Angular-cli.json文件是Angular5中cli的相关配置信息. 今天创建了新Angular项目后突然发现Angular-cli.jso ...

  5. 12:计算2的N次方

    12:计算2的N次方 查看 提交 统计 提问 总时间限制:  1000ms 内存限制:  65536kB 描述 任意给定一个正整数N(N<=100),计算2的n次方的值. 输入 输入一个正整数N ...

  6. Spring Boot fastJSON的使用

    springBoot,默认使用的json解析框架是Jackson. 虽然jackson能够满足json的解析,如果想使用熟悉的alibaba的fastjon,我们只需要在pom文件中配置maven依赖 ...

  7. javascript之for循环的几种写法

    背景 javascript中的for循环选择多种多样,可你知道其中的差别在哪里吗?什么时候又该用哪种循环才是最佳策略?以上这些是本文想讨论的,欢迎交流. 说明 1.20年前的for循环 //20年前的 ...

  8. 星级评分进度条(RatingBar)

    星级评分进度条(RatingBar):(主要用于评价等方面) 常用的xml属性; android:isIndicator:RatingBar是否是一个指示器(用户无法进行更改) android:num ...

  9. import依赖范围的使用

    <!-- <parent> <groupId>org.springframework.boot</groupId> <artifactId>spr ...

  10. redis 概述、windows版本下载启动访问退出安装、中文乱码、RedisDesktopManager下载

    redis 概述 redis的key是string类型的:value有多种类型,但放入的不是特定类型数据,添加的都是string,只是redis把这些值组织成了各种数据结构.key和相应的值都是str ...