洛谷 P3455 [POI2007]ZAP-Queries (莫比乌斯反演)
题意: 给定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 (莫比乌斯反演)相关推荐
- luogu P3455 [POI2007]ZAP-Queries (莫比乌斯反演 + 整除分块)
整理的算法模板合集: ACM模板 题目传送门 本题中数据为5e4,我们只需要筛一次5e4就行了. 双倍经验的P4450 双亲数中数据达到了1e6,我们直接筛1e6的莫比乌斯函数有点不可取,因为只有一组 ...
- [洛谷P2257] YY的GCD (莫比乌斯反演)
YY的GCD 题目描述 神犇YY虐完数论后给傻×kAc出了一题 给定N, M,求1<=x<=N, 1<=y<=M且gcd(x, y)为质数的(x, y)有多少对 kAc这种傻× ...
- 洛谷P2257 YY的GCD 莫比乌斯函数反演+线性筛
洛谷P2257 YY的GCD 标签 莫比乌斯反演 线性筛 前言 这题貌似和莫反没多大关系,就是用到了一个莫比乌斯函数的性质了,其他就是推公式,优化和式. 我的第一道懵逼反演-真的好难好难-而且套路特别 ...
- ZAP-Queries(洛谷-P3455)
题目描述 FGD正在破解一段密码,他需要回答很多类似的问题:对于给定的整数a,b和d,有多少正整数对x,y,满足x<=a,y<=b,并且gcd(x,y)=d.作为FGD的同学,FGD希望得 ...
- 洛谷 P3460 [POI2007]TET-Tetris Attac
[POI2007]TET-Tetris Attack 题目描述 一种名为 Tetris Attack 的猜谜游戏风靡 Byteotia.游戏本身非常复杂,因此我们只介绍它的简化规则: 玩家拥有一个有 ...
- 洛谷P2522 [HAOI2011]Problem b(莫比乌斯反演)
传送门 我们考虑容斥,设$ans(a,b)=\sum_{i=1}^a\sum_{j=1}^b[gcd(a,b)==k]$,这个东西可以和这一题一样去算洛谷P3455 [POI2007]ZAP-Quer ...
- 专题·莫比乌斯函数与欧拉函数【including 整除分块,积性函数,狄利克雷卷积,欧拉函数,莫比乌斯函数,莫比乌斯反演
初见安~又是好久没写博客了--加上CSP才炸了一波. 目录 一.整除分块 题解 二.积性函数 三.狄利克雷卷积 四.欧拉函数 五.莫比乌斯函数(mu) 六.莫比乌斯反演 一.整除分块 看个例题:洛谷P ...
- 莫比乌斯反演--懵逼反演系列
反演的定义 设有数论函数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 ...
- 数论 —— 莫比乌斯反演
[反演] 假设我们手头有个数列 F,通过某种变换 H,可以得到函数 G.,即: 但现在只有函数 G,需要求 F,那么我们就需要寻找一种变换 ,使得 G 在经过这种变换后能够获得 F,这个过程即为反演, ...
最新文章
- LeetCode Find the Difference
- nyoj--364--田忌赛马(贪心)
- MyBatis MapperScannerConfigurer配置——MyBatis学习笔记之八
- 使用序列化反序列化实现学生管理系统
- 操作类名-对象语法//操作类名-数组语法
- java8 64x下载_jdk8 u102 64位下载
- java设计模式_备忘录模式
- neo4j call
- python条件表达式有哪几个_Python中条件表达式的评估顺序是什么?
- Repast仿真学习
- 信天翁水域雷达监视系统
- 千个Excel文件合并为一个文件
- HTTP 412状态码
- 有密码的压缩包怎么解密
- 【Leetcode】780. Reaching Points
- go (golang) DNS域名解析实现
- 个人编译移动内核时遇到的一些问题报错及处理方法【不定时更新2021.1.3】
- leeCode350_两个数组的交集
- 公司建网站多少钱?【网站多少钱】
- 介绍一下芯片的VIA pillar