题意: 给定a,b,d求gcd(x,y)=d的对数(1<=x<=a,1<=y<=b)

思路:按照套路来先设f(n)为gcd(x,y)=n的对数,g(n)表示为 n | gcd(x,y)的对数,则g(n)=∑n|df(d)=a/n*b/n

f(n)=∑n|dg(d)*mu(d/n),令t=d/n则f(n)=∑t=1g(t*n)*mu(t),然后求f(d)就行了

#include<iostream>
#include<algorithm>
#include<string.h>
#include<string>
#include<vector>
#include<cstdio>
#include<queue>
#include<map>
#include<set>
#include<math.h>
using namespace std;
const int inf=0x3f3f3f3f;
const int maxn=1e5+5;
typedef long long ll;
int dir[4][2]={-1,0,1,0,0,-1,0,1};
int prime[maxn/10];
int tot;
int mu[maxn];
int sum[maxn];
int vis[maxn];
void table(){memset(vis,0,sizeof(vis));memset(sum,0,sizeof(sum));memset(mu,0,sizeof(mu));tot=0;mu[1]=1;vis[0]=vis[1]=1;sum[1]=1;for(int i=2;i<maxn;i++){if(!vis[i]){prime[tot++]=i;mu[i]=-1;}sum[i]=sum[i-1]+mu[i];for(int j=0;j<tot&&i*prime[j]<maxn;j++){vis[i*prime[j]]=1;if(i%prime[j]){mu[i*prime[j]]=-mu[i];}else break;}}
}
int main(){ll t;ios::sync_with_stdio(false);table();cin>>t;while(t--){ll a,b,d;cin>>a>>b>>d;a/=d;b/=d;ll limit=min(a,b);ll ans=0;for(ll x=1,y;x<=limit;){//cout<<x<<endl;y=min(a/(a/x),b/(b/x));ans+=(a/x)*(b/x)*(sum[y]-sum[x-1]);x=y+1;}cout<<ans<<endl;}
}

转载于:https://www.cnblogs.com/azznaz/p/10727402.html

洛谷 P3455 [POI2007]ZAP-Queries (莫比乌斯反演)相关推荐

  1. luogu P3455 [POI2007]ZAP-Queries (莫比乌斯反演 + 整除分块)

    整理的算法模板合集: ACM模板 题目传送门 本题中数据为5e4,我们只需要筛一次5e4就行了. 双倍经验的P4450 双亲数中数据达到了1e6,我们直接筛1e6的莫比乌斯函数有点不可取,因为只有一组 ...

  2. [洛谷P2257] YY的GCD (莫比乌斯反演)

    YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...

  3. 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛

    洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...

  4. ZAP-Queries(洛谷-P3455)

    题目描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得 ...

  5. 洛谷 P3460 [POI2007]TET-Tetris Attac

    [POI2007]TET-Tetris Attack 题目描述 一种名为 Tetris Attack 的猜谜游戏风靡 Byteotia.游戏本身非常复杂,因此我们只介绍它的简化规则: 玩家拥有一个有 ...

  6. 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)

    传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Quer ...

  7. 专题·莫比乌斯函数与欧拉函数【including 整除分块,积性函数,狄利克雷卷积,欧拉函数,莫比乌斯函数,莫比乌斯反演

    初见安~又是好久没写博客了--加上CSP才炸了一波. 目录 一.整除分块 题解 二.积性函数 三.狄利克雷卷积 四.欧拉函数 五.莫比乌斯函数(mu) 六.莫比乌斯反演 一.整除分块 看个例题:洛谷P ...

  8. 莫比乌斯反演--懵逼反演系列

    反演的定义 设有数论函数f(n),g(n)f(n),g(n)f(n),g(n),其中g(n)g(n)g(n)已知 且f(n),g(n)f(n),g(n)f(n),g(n)满足关系g(n)=∑i=0na ...

  9. 数论 —— 莫比乌斯反演

    [反演] 假设我们手头有个数列 F,通过某种变换 H,可以得到函数 G.,即: 但现在只有函数 G,需要求 F,那么我们就需要寻找一种变换 ,使得 G 在经过这种变换后能够获得 F,这个过程即为反演, ...

最新文章

  1. LeetCode Find the Difference
  2. nyoj--364--田忌赛马(贪心)
  3. MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
  4. 使用序列化反序列化实现学生管理系统
  5. 操作类名-对象语法//操作类名-数组语法
  6. java8 64x下载_jdk8 u102 64位下载
  7. java设计模式_备忘录模式
  8. neo4j call
  9. python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?
  10. Repast仿真学习
  11. 信天翁水域雷达监视系统
  12. 千个Excel文件合并为一个文件
  13. HTTP 412状态码
  14. 有密码的压缩包怎么解密
  15. 【Leetcode】780. Reaching Points
  16. go (golang) DNS域名解析实现
  17. 个人编译移动内核时遇到的一些问题报错及处理方法【不定时更新2021.1.3】
  18. leeCode350_两个数组的交集
  19. 公司建网站多少钱?【网站多少钱】
  20. 介绍一下芯片的VIA pillar

热门文章

  1. 20190608笔试题のCSS-属性继承
  2. 【原创】Linux安装Redis
  3. JavaWeb(十七)——JSP中的九个内置对象
  4. Laravel 清空配置缓存
  5. 两种解决IE6不支持固定定位的方法
  6. Ph.D Grind 阅读感想 By 张雄
  7. matlab imaqhwinfo
  8. 用JDBC直连方式访问SQL Server 2005详解
  9. c++中关于字符串的读入——cin、getline、get、gtes(查询+思考+总结)
  10. mysql主从维护_mysql主从日常管理维护