【题解】Zap(莫比乌斯反演)
【题解】Zap(莫比乌斯反演)
裸题...
直接化吧
[P3455 POI2007]ZAP-Queries
所有除法默认向下取整
\\
=\Sigma_{i=1}^{x/k}\Sigma_{j=1}^{y/k}[(i,j)=1]
\\
=\Sigma_{i=1}^{x/k}\Sigma_{j=1}^{y/k}\Sigma_{d|(i,j)}\mu(d)
\\
=\Sigma_{d=1}^{min(x,y)}\Sigma_{i=1}^{x/k}\Sigma_{j=1}^{y/k}\mu(d)\times[d|(i,j)]
\\
=\Sigma_{d=1}^{min(x,y)}(\frac x {dk})(\frac y {dk})\mu(d)
\]
整除分块直接做...
有一个细节,可能有疑惑:
r=min(x/(x/l),y/(y/l));
ans+=1ll*(x/(l*k))*(y/((l*k)))*(sum[r]-sum[l-1]);
整除分块为什么是这样的?为什么r=min(x/(x/l),y/(y/l));
中的"\(l\)"和ans+=1ll*(x/(l*k))*(y/((l*k)))*(sum[r]-sum[l-1]);
不统一,为什么是(x/(l*k))*(y/(l*k))
?这不是整除分块正常的套路啊?
可以这样理解,整除分块利用了\(\lfloor \frac x l \rfloor\)在一定范围内不变的性质,所以我们同样也会有\(\lfloor\frac {\lfloor \frac x l \rfloor} k\rfloor\)在一定范围内不变化,并且前面那个式子包括的\(l\)的范围一定小于后面的那个\(l\)的范围,所以我们按照\(\lfloor \frac x l \rfloor\)整除分块即可。
至于如何按照\(\lfloor\frac {\lfloor \frac x l \rfloor} k\rfloor=\lfloor \frac x {lk} \rfloor\)分块,我也不知道怎么办,希望有高手指点一下QAQ
#include<bits/stdc++.h>
using namespace std;typedef long long ll;
template < class ccf >
inline ccf qr(ccf b){
register char c=getchar();register int q=1;register ccf x=0;
while(c<48||c>57)q=c==45?-1:q,c=getchar();
while(c>=48&&c<=57)x=x*10+c-48,c=getchar();
return q==-1?-x:x;}
inline int qr(){return qr(1);}
const int maxn=1e5+5;
bool usd[maxn];
int mu[maxn];
int sum[maxn];
vector < int > ve;
int x,y,k;
#define pb push_back
inline void gen(){
mu[1]=sum[1]=usd[1]=1;
for(register int t=2;t< maxn;++t){
if(not usd[t])
ve.pb(t),mu[t]=-1;
for(register auto p:ve)
if(1ll*p*t<maxn)
if(usd[p*t]=1,t%p) mu[p*t]=-mu[t];
else break;
else break;
sum[t]=sum[t-1]+mu[t];
}
}
int main(){
gen();
int T=qr();
while(T--){
x=qr();y=qr();k=qr();
ll ans=0;
for(register int l=1,r=0,edd=min(x,y)/k;l<=edd;l=r+1){
r=min(x/(x/l),y/(y/l));
ans+=1ll*(x/(l*k))*(y/((l*k)))*(sum[r]-sum[l-1]);
}
cout<<ans<<endl;
}
return 0;
}
【题解】Zap(莫比乌斯反演)的更多相关文章
- 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)\) 表示 \(( ...
- 【BZOJ1101】Zap [莫比乌斯反演]
Zap Time Limit: 10 Sec Memory Limit: 162 MB[Submit][Status][Discuss] Description 对于给定的整数a,b和d,有多少正整 ...
- 1101: [POI2007]Zap(莫比乌斯反演)
1101: [POI2007]Zap Time Limit: 10 Sec Memory Limit: 162 MB Description FGD正在破解一段密码,他需要回答很多类似的问题:对于给定 ...
- bzoj 1101 Zap —— 莫比乌斯反演
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1101 直接莫比乌斯反演. 代码如下: #include<cstdio> #inc ...
- BZOJ 1101 Luogu P3455 POI 2007 Zap (莫比乌斯反演+数论分块)
手动博客搬家: 本文发表于20171216 13:34:20, 原地址https://blog.csdn.net/suncongbo/article/details/78819470 URL: (Lu ...
- CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】
反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...
- BZOJ 1101: [POI2007]Zap( 莫比乌斯反演 )
求 answer = ∑ [gcd(x, y) = d] (1 <= x <= a, 1 <= y <= b) . 令a' = a / d, b' = b / d, 化简一下得 ...
- BZOJ 1101 Zap(莫比乌斯反演)
http://www.lydsy.com/JudgeOnline/problem.php?id=1101 给定a,b,d,求有多少gcd(x,y)==d(1<=x<=a&& ...
随机推荐
- Oracle安装过程中的几点注意
为追求统一,安装了oracle 11g step 4时需要改一下名称,利于记忆 数据库安装完之后需要取消SCOTT账户的锁定 完成后点击SQL Developer会出现——"应用程序开发&q ...
- linux tomacat 之部署 war包
之前一篇写的是tomcat的linux安装,其中主要是jre 的问题,接下来讲讲 tomcat发布war包 这是一个相对简单的过程 打好war包后,将war包上传到/usr/local/tomcat/ ...
- Android应用中使用百度地图API之POI(三)
先看执行后的图吧: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvbWFqaWFuamll/font/5a6L5L2T/fontsize/400/fill/ ...
- vue 结合localStorage 来双向绑定数据
结合localStorage 来双向绑定数据(超级神奇) localStorage.js: const STORAGE_KEY = 'todos_vuejs' export default { fet ...
- leetcode第一刷_Balanced Binary Tree
二叉平衡树好火啊.差点儿每一个公司的笔试题里都有它.考了好多次我都不会,挂笔试非常有可能就是由于它.另一个它的同伙叫二叉搜索树,貌似人气比它还要高一些. 二叉平衡树是什么样的树呢.是每一个节点的左右子 ...
- iOS视频压缩存储至本地并上传至服务器
最近做了一个项目,我把其中的核心功能拿出来和大家分享一下,重点还是自己梳理一下. 这里关于视频转码存储我整理了两个方法,这两个方法都是针对相册内视频进行处理的. 1.该方法没有对视频进行压缩,只是将视 ...
- Win10系统如何配置Tomcat环境变量
我们知道win10用户在配置Tomcat环境变量的时候,首先需要配置JAVA,这样才能配置Tomcat环境.很多用户并不知道要如何进行配置,下面就给大家介绍win10系统怎样Tomcat环境变量的. ...
- Java Web -- Servlet(1) 必备知识
学习Java WEB开发必备的基本概念: 1.WEB 本意是蜘蛛网和网的意思.在网页设计中我们称为网页的意思. 现广泛译作网络.互联网等技术领域.表现为三种形式,即超文本(hypertext).超媒体 ...
- VC++通过API连接MySQL
1. 首先安装MySQL数据库server,本文安装的是mysql-installer-community-5.6.10.1.msi这个版本号.至于各个版本号有什么不同,不在这里说明. 例如以下的默 ...
- 从git上拉下来的严选weex项目demo
项目地址 https://github.com/zwwill/yanxuan-weex-demo 在package.json里"author"之类后面加上 "privat ...