-题目の传送门-

题目大意: 找到第k个无平方因子数.

看到数据范围很大, 我们要采用比\(O(n)\)还要小的做法.

考虑如果前\(x\)个数中有\(k-1\)个无平方因子数, 而前\(x+1\)个数中有\(k\)个无平方因子数, 那么\(x\)即为所求.

而由某种我不会的方式可以证明出答案是不会超过\(2n\)的, 所以我们可以二分答案.

问题就转化成了求前\(x\)个数中有多少个无平方因子数.

我们要求无平方因子数就要把所有的有平方因字数筛掉, 为了保证不重不漏, 我们考虑容斥.

我们枚举\(1\sim \sqrt n\)中的所有无平方因子数, 将其平方及其平方的倍数删掉.

这样的话有偶数个质因子的数就被多删了一遍, 我们再将他们加回来.

我们设容斥系数是\(k(i)\), 那么

\[ans=\sum_{i=1}^{\left \lfloor \sqrt n \right \rfloor}k(i){\left \lfloor \frac n{i^2} \right \rfloor}
\]

而根据上面的分析, 容斥系数\(k(i)\)满足:

\[k(i)=\left\{\begin{matrix}
0,\ 有平方因子\\
1,\ 无平方因子, \pi(i)是偶数\\
-1,\ 无平方因子, \pi(i)是奇数
\end{matrix}\right.
\]

非常巧合的是, 这个容斥系数跟\(\mu\)好像是一样的啊...

所以我们就可以得出

\[ans=\sum_{i=1}^{\left \lfloor \sqrt n \right \rfloor}\mu(i){\left \lfloor \frac n{i^2} \right \rfloor}
\]

这样预处理一波\(\mu\), 然后每次\(O(\sqrt n)\)统计答案即可.

时间复杂度\(O(T*log_2n*\sqrt n)\)

代码:

#include <cstdio>
const int N=45005;
int pr[N],mu[N],tot,n;
bool np[N];
void shai(){
mu[1]=np[1]=1;
for(int i=2,k;i<=45000;++i){
if(!np[i]) pr[++tot]=i,mu[i]=-1;
for(int j=1;j<=tot&&(k=i*pr[j])<=45000;++j){
np[k]=1;
if(i%pr[j]==0){mu[k]=0; break;}
mu[k]=-mu[i];
}
}
}
inline bool check(int x,int s=0){
for(int i=1;i*i<=x;++i)
s+=x/(i*i)*mu[i];
return s>=n;
}
int main(){ shai();
int T; scanf("%d",&T);
while(T--){
scanf("%d",&n);
int l=1,r=n<<1;
while(l<r){
int mid=(1LL*l+r)>>1;
if(check(mid)) r=mid;
else l=mid+1;
}
printf("%d\n",r);
}
}

这个题并和莫比乌斯反演没什么关系, 算是莫比乌斯函数的一个小应用吧...

【学术篇】bzoj2440 [中山市选2011]完全平方数的更多相关文章

  1. BZOJ2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4920  Solved: 2389[Submit][Sta ...

  2. BZOJ2440 中山市选2011完全平方数(容斥原理+莫比乌斯函数)

    如果能够知道不大于n的合法数有多少个,显然就可以二分答案了. 考虑怎么求这个.容易想到容斥,即枚举完全平方数.我们知道莫比乌斯函数就是此种容斥系数.筛出来就可以了. 注意二分时会爆int. #incl ...

  3. BZOJ2440 [中山市选2011]完全平方数

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  4. 2019.02.09 bzoj2440: [中山市选2011]完全平方数(二分答案+容斥原理)

    传送门 题意简述:qqq次询问(q≤500)(q\le500)(q≤500),每次问第kkk个不被除111以外的完全平方数整除的数是多少(k≤1e9)(k\le1e9)(k≤1e9). 思路:考虑二分 ...

  5. BZOJ2440:[中山市选2011]完全平方数(莫比乌斯函数)

    Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是 ...

  6. 题解【bzoj2440 [中山市选2011]完全平方数】

    Description 求第 \(k\) 个不含平方因子的正整数.多组询问.\(k \leq 10^9, T \leq 50\) Solution 网上的题解几乎都是容斥,这里给一个简单的也挺快的做法 ...

  7. bzoj2440 [中山市选2011]完全平方数——莫比乌斯+容斥

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2440 莫比乌斯...被难倒... 看TJ:http://hzwer.com/4827.htm ...

  8. BZOJ2440: [中山市选2011]完全平方数 容斥原理_莫比乌斯函数

    emmm....... 数学题都不友好QAQ...... Code: #include <cstdio> #include <algorithm> #include <c ...

  9. BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 3028  Solved: 1460[Submit][Sta ...

随机推荐

  1. centos启动提示unexpected inconsistency RUN fsck MANUALLY

    今天一台虚拟机背后的物理机故障了,主机迁移后变成了 read only filesystem.上面部署了很多长连接服务,没有关掉就直接reboot,报错: unexpected inconsisten ...

  2. 【leetcode】1072. Flip Columns For Maximum Number of Equal Rows

    题目如下: Given a matrix consisting of 0s and 1s, we may choose any number of columns in the matrix and ...

  3. @ControllerAdvice全局数据绑定

        @ModelAttribute 注解标记该方法的返回数据是一个全局数据,默认情况下,这个全局数据的 key 就是返回的变量名,value 就是方法返回值,当然开发者可以通过 @ModelAtt ...

  4. 进入cmd的另外的一种方式

    按Shift键+鼠标右键 进入powershell ,进入的界面和普通的shell界面不一样

  5. 201903-2 CCF 二十四点

    题面: 考场写的30分== #include<bits/stdc++.h> using namespace std; stack<int>st; stack<char&g ...

  6. css 实现div内显示两行或三行,超出部分用省略号显示

    一.div内显示一行,超出部分用省略号显示 white-space: nowrap;    overflow: hidden;    text-overflow: ellipsis; 二.div内显示 ...

  7. 【进阶技术】一篇文章搞掂:OAuth2

    一.第一步 1.什么是OAuth2,为什么应该了解 应用程序请求资源所有者进行认证,并接受tokens来访问这些资源应用程序不是以控制资源的“人”的角度去访问资源,而是用许可证举例,备用钥匙,车主主钥 ...

  8. 2017年度最具商业价值人工智能公司TOP50 榜单发布

    2017年度最具商业价值人工智能公司TOP50 榜单发布 未来最有赚钱潜力的50个人工智能项目都在这里了. 经过了60年的发展,人工智能在2017年,正式走向应用的元年. 从今年起,人工智能首次被写入 ...

  9. Type Interceptors

    Type Interceptors Castle.Core, part of the Castle Project, provides a method interception framework ...

  10. __I、 __O 、__IO是什么意思?怎么用?

    出处:http://www.chuxue123.com/forum.php?mod=viewthread&tid=122&ctid=3 __I. __O .__IO是什么意思?这是ST ...