BZOJ 2440 完全平方数(莫比乌斯反演,容斥原理)
http://www.lydsy.com/JudgeOnline/problem.php?id=2440
题意:求第K个没有平方因子的数
思路:首先,可以二分数字,然后问题就转变成x以内有多少无平方因子的数
根据容斥原理:x以内无平方因子数=1*无需是任何质数的倍数的数数量-1*至少是1个质数的平方的倍数的数数量+1*至少是2个质数的平方的倍数的数量-1*至少是3个质数的平方的倍数的数量............然后发现,莫比乌斯函数u[i]正好满足:当i是不同的质数乘积时,返回-1,有相同因子就返回1,否则返回0
因此枚举i从1到根号x,ans+=mul[i]*x/(i*i)
#include<algorithm>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<iostream>
#define N 160000
#define ll long long
int mark[],p[],mul[];
int read(){
char ch=getchar();int t=,f=;
while (ch<''||ch>''){if (ch=='') f=-;ch=getchar();}
while (''<=ch&&ch<=''){t=t*+ch-'';ch=getchar();}
return t*f;
}
void init(){
mul[]=;
for (int i=;i<=N;i++){
if (!mark[i]){
p[++p[]]=i;
mul[i]=-;
}
for (int j=;j<=p[]&&p[j]*i<=N;j++){
mark[i*p[j]]=;
if (i%p[j]) mul[i*p[j]]=-mul[i];
else{
mul[i*p[j]]=;
break;
}
}
}
}
ll cal(ll x){
ll sum=;
for (ll i=;i*i<=x;i++)
sum+=x/(i*i)*mul[(int)i];
return sum;
}
int main(){
init();
int T=read();
while (T--){
ll K=(ll)read();
ll L=K,R=1644934081LL,ans=;
while (L<=R){
ll mid=(L+R)>>;
if (cal(mid)>=K) ans=mid,R=mid-;
else L=mid+;
}
printf("%lld\n",ans);
}
}
BZOJ 2440 完全平方数(莫比乌斯反演,容斥原理)的更多相关文章
- BZOJ 2440 完全平方数 莫比乌斯反演模板题
题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=2440 题目大意: 求第k个无平方因子的数 思路: 二分答案x,求1-x中有多少个平方因 ...
- bzoj 2440 简单莫比乌斯反演
题目大意: 找第k个非平方数,平方数定义为一个数存在一个因子可以用某个数的平方来表示 这里首先需要考虑到二分才可以接下来做 二分去查找[1 , x]区间内非平方数的个数,后面就是简单的莫比乌斯反演了 ...
- HYSBZ 2440 完全平方数(莫比乌斯反演)
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2440 若i为质数,n为i*i的倍数,则称n为含平方因子数. 求1~n的无平方因子数. F(x) ...
- bzoj 2440 (莫比乌斯函数)
bzoj 2440 完全平方数 题意:找出第k个不是完全平方数的正整数倍的数. 例如 4 9 16 25 36什么的 通过容斥原理,我们减去所有完全数 4有n/4个,但是36这种会被重复减去, ...
- bzoj [SDOI2014]数表 莫比乌斯反演 BIT
bzoj [SDOI2014]数表 莫比乌斯反演 BIT 链接 bzoj luogu loj 思路 \[ \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}a*[f[ ...
- BZOJ 2440 完全平方数(莫比乌斯反演+二分查找)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23362 题意:定义含有平方数因子的数为完全平方数(平方数因子不包含 ...
- Bzoj 2440: [中山市选2011]完全平方数(莫比乌斯函数+容斥原理+二分答案)
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平 ...
- BZOJ 2440 完全平方数
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 966 Solved: 457 [Submit][Sta ...
- BZOJ2301: [HAOI2011]Problem b[莫比乌斯反演 容斥原理]【学习笔记】
2301: [HAOI2011]Problem b Time Limit: 50 Sec Memory Limit: 256 MBSubmit: 4032 Solved: 1817[Submit] ...
随机推荐
- MySQL导出数据文件
SELECT * INTO OUTFILE '/root/a.txt' FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n' FROM t_log_in ...
- DJANGO的HTTPRESPONSE流式输出
在项目当中遇到的问题,网上有样例代码,但都不行,后来,发现在了1.5版本之后,新的STREAMHTTPRESPONSE对象, 搞定. from django.http import HttpRespo ...
- WPF 如何缓解大量控件加载缓慢的问题
最近有一个项目需要加载大量的控件,导致系统出现卡顿问题,经过几天的努力,终于搞定了,写一下备忘. 解决方案是首次加载时只显示可见区域控件,之后使用辅助线程进行分批加载,将分批加载的线程优先级别设置为空 ...
- VS2010中使用QtOpenGL出现 unresolved external symbol __imp__glClear@4 referenced in function之类的错误
描述: 链接了QtOpenGL4.lib QtOpend4.lib的库啊,居然还是发生此错误. 原因是没有链接OpenGL32.lib这个库.所以,要添加这个lib 重新rebuild的一下,此类的错 ...
- Android_Studio 及SDK下载
Android Studio includes all the tools you need to build apps for Android. DOWNLOAD ANDROID STUDIO 2. ...
- Using HTML5 audio and video
From:https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_HTML5_audio_and_video Using HTML5 ...
- UIScrollView入门与框架设计
一.概述 1.UIScrollView的contentSize, contentOffSet, contentInsets的作用和使用. 2.UIScrollView的一整个滚动过程的生命周期(开始滚 ...
- 线段树(build,insert,dfs操作)
模板原型: 解决零散数点在已知线段上的出现次数.思想是将线段用长线覆盖,将长线转化成线段树.用权值记录各个数点出现的次数,最后进行查询.代码解释见注释. #include <bits/stdc+ ...
- MapReduce源代码浅析
Thanks @读程序的手艺人 watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaHVvemhhbmZlbmc=/font/5a6L5L2T/fontsize ...
- android CMWAP, CMNET有何差别
什么是CMNET,什么是CMWAP? 答:CMWAP和CMNET仅仅是中国移动为其划分的两个GPRS接入方式.中国移动对CMWAP作了一定的限制,主要表如今CMWAP接入时仅仅能訪问GPRS网络内的I ...