BZOJ 1101 [POI2007]Zap(莫比乌斯反演)
【题目链接】 http://www.lydsy.com/JudgeOnline/problem.php?id=1101
【题目大意】
求[1,n][1,m]内gcd=k的情况
【题解】
考虑求[1,n][1,m]里gcd=k
等价于[1,n/k][1,m/k]里gcd=1
考虑求[1,n][1,m]里gcd=1
结果为sum(miu[d]*(n/d)*(m/d))
预处理O(n^1.5)
由于n/d只有sqrt(n)种取值,所以可以预处理出miu[]的前缀和 询问时分段求和
【代码】
#include <cstdio>
#include <algorithm>
const int N=50010;
using namespace std;
typedef long long ll;
int T,a,b,c,d,k;
int tot,p[N],miu[N],sum[N],v[N];
void mobius(int n){
int i,j;
for(miu[1]=1,i=2;i<=n;i++){
if(!v[i])p[tot++]=i,miu[i]=-1;
for(j=0;j<tot&&i*p[j]<=n;j++){
v[i*p[j]]=1;
if(i%p[j])miu[i*p[j]]=-miu[i];else break;
}
}for(i=1;i<=n;i++)sum[i]=sum[i-1]+miu[i];
}
ll cal(int n,int m){
ll t=0;
if(n>m)swap(n,m);
for(int i=1,j=0;i<=n;i=j+1)
j=min(n/(n/i),m/(m/i)),t+=(ll)(sum[j]-sum[i-1])*(n/i)*(m/i);
return t;
}
int main(){
mobius(50000);
scanf("%d",&T);
while(T--){
scanf("%d%d%d",&a,&b,&k);
printf("%lld\n",cal(a/k,b/k));
}return 0;
}
BZOJ 1101 [POI2007]Zap(莫比乌斯反演)的更多相关文章
- BZOJ 1101: [POI2007]Zap( 莫比乌斯反演 )
求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得 ...
- 1101: [POI2007]Zap(莫比乌斯反演)
1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MB Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定 ...
- BZOJ1101: [POI2007]Zap(莫比乌斯反演)
1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2951 Solved: 1293[Submit][Status ...
- Bzoj1101: [POI2007]Zap 莫比乌斯反演+整除分块
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 莫比乌斯反演 1101: [POI2007]Zap 设 \(f(i)\) 表示 \(( ...
- BZOJ 1101: [POI2007]Zap
1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MBSubmit: 2262 Solved: 895[Submit][Status] ...
- BZOJ 1101 [POI2007]Zap | 第一道莫比乌斯反(繁)演(衍)
题目: http://www.lydsy.com/JudgeOnline/problem.php?id=1101 题解: http://www.cnblogs.com/mrha/p/8203612.h ...
- bzoj 1101 [POI2007]Zap——反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 #include<cstdio> #include<cstring& ...
- BZOJ 1101 [POI2007]Zap ——Dirichlet积
[题目分析] Dirichlet积+莫比乌斯函数. 对于莫比乌斯函数直接筛出处理前缀和. 对于后面向下取整的部分,可以分成sqrt(n)+sqrt(m)部分分别计算 学习了一下线性筛法. 积性函数可以 ...
- 【题解】Zap(莫比乌斯反演)
[题解]Zap(莫比乌斯反演) 裸题... 直接化吧 [P3455 POI2007]ZAP-Queries 所有除法默认向下取整 \[ \Sigma_{i=1}^x\Sigma_{j=1}^y[(i, ...
随机推荐
- CentOS 7 +Nginx
一:安装前的准备工作 安装 pcre-devel环境 #yum -y install pcre-devel 安装 openssl 环境 #yum -y install openssl open ...
- Log4Net Config Appender
整理了下以前项目中使用的Log4Net的Appender. 1:只记录在一个文件下的 <appender name="RollingFileAppenderFileSize" ...
- Android 自带 camera 详解
在本文中 需要考虑的问题 概述 Manifest声明 使用内置的摄像头应用程序 捕获图像的intent 捕获视频的intent 接收摄像头intent的结果 创建摄像头应用程序 检测摄像头硬件 访问摄 ...
- COCOS2d-x简易安装步骤
准备工作:1. 下载 cocos2d-x 下载地址:http://cdn.cocos2d-x.org/cocos2d-x-2.2.zip2. 下载 python 2.7.3 下载地址:h ...
- 如何阅读mysql源码
在微博上问mysql高手,如何阅读mysql 源码大致给了下面的一些建议: step 1,知道代码的组织结构(官方文档http://t.cn/z8LoLgh: Step2: 尝试大致了解一条sql涉及 ...
- 得到client真IP住址
1.引进的必要性log4j-1.2.14.jar package org.ydd.test; import java.util.Enumeration; import javax.servlet.ht ...
- eclipse 中修改 M2_REPO的值
转自: http://blog.csdn.net/xuechongyang/article/details/8267440 从eclipse中增加了maven2的插件之后,maven默认的本地库的路径 ...
- 我的学习笔记之API-Guides翻译------AppComponent_Activites
10.26第一天开始:贵在坚持,边看遍整理 一个应用程序通常由多个Activity组成,它们之间是松耦合的关系.特别的,有一个Activity作为app的主Activity,当app首次启动时呈现给用 ...
- English - because of,due to ,thanks to ,owing to ,as a result of ,on account of解析
because of,due to ,thanks to ,owing to ,as a result of ,on account of 等都可以用来表示原因,但其用法却各有不同.下面就其用法分述如 ...
- 2014.8.18for循环
for循环 1.初始状态 2.循环条件 3.循环体 4.状态改变 语法 for( 初始状态 ; 循环条件 ; 状态改变 ) { 循环体; } eg: ; i <= ; i++) { Con ...