【bzoj2440】完全平方数
题意:
求第n个不为完全平方数倍数的数
题解:
网上有人说答案不会超过2n (求证0 0?) 竟然不超过2n 那么很明显就是用二分做了
二分判定就是要求小于等于n的合法的数的个数
不难发现一个数若为完全平方数的倍数 则他的质因子肯定有一个的指数大于1
那么合法的数的所有质因数质数肯定都为1
_________________________________________________________________________________
于是题目变为 求小于等于的质因数指数都为1的数的个数
我们可以把<=n的 所有i^2的倍数的数减掉(i为质数)
算重?
莫比乌斯函数!(容斥原理- -)
答案就是n-奇数个质数的平方的倍数的个数+偶数个质数的平方的倍数的个数
即 ans=Σmiu[i]*(n/i^2) (i<=(int) sqrt(n) 显然i如果>sqrt(n)个数肯定为0)
1 (i为奇数个质数的乘积)
miu[i]= -1 (i为偶数个质数的乘积)
0 (i有某个质数指数>1)
_________________________________________________________________________________
代码:

#include <cstdio>
#include <cmath>
typedef long long ll;
const ll M=;
ll t,n,miu[M],pri[M],bo[M],ans;
void makemiu(){
miu[]=;
for (ll i=;i<M;i++){
if (!bo[i]){
pri[++pri[]]=i;
miu[i]=-;
}
for (ll j=;j<=pri[] && pri[j]*i<M;j++){
bo[i*pri[j]]=;
if (i%pri[j]==){
miu[i*pri[j]]=;
break;
}else miu[i*pri[j]]=-miu[i];
}
}
}
ll check(ll t){
ll sq=(int)sqrt(t),res=;
for (ll i=;i<=sq;i++)
res=res+miu[i]*(t/(i*i));
return res;
}
ll getans(ll t){
ll l=,r=t*,mid;
while (l+<r){
mid=(l+r)/;
if (check(mid)<t) l=mid;
else r=mid;
}
return r;
}
int main(){
scanf("%I64d",&t);
makemiu();
for (ll i=;i<=t;i++){
scanf("%I64d",&n);
printf("%I64d\n",getans(n));
}
}
【bzoj2440】完全平方数的更多相关文章
- bzoj2440 完全平方数 莫比乌斯值+容斥+二分
莫比乌斯值+容斥+二分 /** 题目:bzoj2440 完全平方数 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2440 题意:求第k个小x数 ...
- [BZOJ2440]完全平方数解题报告|莫比乌斯函数的应用
完全平方数 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是小X的生日 ...
- Bzoj2440 完全平方数
Time Limit: 10000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description 小 X 自幼就很 ...
- bzoj2440完全平方数
题目链接 上来先吐槽题面!!!!!! 你跟我说$1$不是完全平方数昂? 看了半天样例啊. 活生生的半天$……$ 莫比乌斯 反演 函数容斥一下,每次二分就好 反正本宝宝不知道反演是啥. 每次判断应 ...
- BZOJ2440完全平方数(莫比乌斯反演)
Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是 ...
- 【二分+容斥+莫比乌斯反演】BZOJ2440 完全平方数
Description 求第k个没有完全平方因子的数,k<=1e9. Solution 这其实就是要求第k个µ[i](莫比乌斯函数)不为0的数. 然而k太大数组开不下来是吧,于是这么处理. 二分 ...
- [中山市选2011][bzoj2440] 完全平方数 [二分+莫比乌斯容斥]
题面 传送门 思路 新姿势get 莫比乌斯容斥 $\sum_{i=1}{n}\mu(i)f(i)$ 这个东西可以把所有没有平方质因子的东西表示出来,还能容斥掉重复的项 证明是根据莫比乌斯函数的定义,显 ...
- [bzoj2440]完全平方数(二分+mobius反演)
解题关键:由容斥原理得,num=1的倍数的数量−一个质数平方数(9,25,49...)的倍数的数量+两个质数的积平方数(36,100,225...)的数量−三个质数...... 这道题用莫比乌斯的正向 ...
- [bzoj2440]完全平方数[中山市选2011][莫比乌斯函数][线性筛][二分答案]
题意:求第k个分解质因子后质因子次数均为一的数,即求第k个无平方因子数. 题解: 首先二分答案mid,那么现在就是要求出mid以内的无平方因子数的个数. 其次枚举$\sqrt{mid}$内的所有质数, ...
- SIEVE 线性筛
今天来玩玩筛 英文:Sieve 有什么筛? 这里介绍:素数筛,欧拉筛,约数个数筛,约数和筛 为什么要用筛? 顾名思义,筛就是要漏掉没用的,留下有用的.最终筛出来1~n的数的一些信息. 为什么要用线性筛 ...
随机推荐
- 快速配置Ehcache
1. 编写ehcache.xml文件,将该文件放置于classpath路径下.代码如下: <?xml version="1.0" encoding="UTF-8&q ...
- Android 环境搭建 版本问题
jdk1.6 1.7 eclipse 3.7.2 SDK-r12 ADT 12 SDK和ADT必须配套 搭建环境需要四个软件: 1.JDK(这是最新版本jdk1.7官方下载地址:http:// ...
- the structure of the project (MVC)
HTML <--- JSP <---- JS <---- Java controller <---- DAO <---- Database The JSP Model 2 ...
- Android ExpandableListView 带有Checkbox的简单应用
expandablelistview2_groups.xml <?xml version="1.0" encoding="utf-8"?> < ...
- live555源码研究(三)------UsageEnvironment类
一.UsageEnvironment类作用 1,不使用的时候回收当前的使用环境. 2,对返回结果消息和错误消息的维护. 二.类UsageEnvironment继承关系图
- iOS如何把导航默认的返回按钮设置成“返回”
版权声明:本CSDN博客所有文章不更新,请关注标哥博客:http://www.henishuo.com/ - (void)addBackItemWithAction:(SEL)action { if ...
- !! Scrum之 流程和术语
!!Scrum之 流程和术语 http://www.cnblogs.com/zhoujg/archive/2009/07/15/1523680.html 以下将对一些术语进行简单介绍,以便大家现在开始 ...
- 利用VC/VS的安装目录找到C/C++库函数实现的源代码
2013-07-03 20:08:57 大多开发软件的装目录下都有很多有价值的东西,比如help文档.user guide.src文件等.今天在VS的安装目录下发现了库函数的源文件,这些文件中有对所有 ...
- ObfuscationAttribute模糊处理
在Reflection的强大和Reflector的盛行下,.NET产品的内部实现越来越透明,在恶意用户和Cracker面前,基本上已是砧板上的肉,被切到什么程度只能祈祷遇到的都是钝刀子:于是一批批的混 ...
- vijos p1071新年趣事之打牌
描述 过年的时候,大人们最喜欢的活动,就是打牌了.xiaomengxian不会打牌,只好坐在一边看着. 这天,正当一群人打牌打得起劲的时候,突然有人喊道:“这副牌少了几张!”众人一数,果然是少了.于是 ...