传送门

题意:求第 k k k个无平方因子数

考虑到第 k k k个不好求
二分一个数 x x x,计算 x x x以内的无平方因子数

由于容斥原理
a n s = n − ans=n- ans=n−质数的平方的所有倍数+2个质数之积的平方的所有倍数-3个质数之积的平方的所有倍数+4个……
这是个简单的容斥很好证明

考虑一下每个的符号,质数为 − - −,2个质数为 + + +,3个质数为 − - −,4个质数为 + + +

就是莫比乌斯函数!!

由于大于 n \sqrt n n ​的数的平方已经大于 n n n了,所以我们只需要枚举 n \sqrt n n ​以内的数

而一个数的平方在 n n n内的出现次数为 ⌊ n i 2 ⌋ \lfloor \frac{n}{i^2} \rfloor ⌊i2n​⌋

所以 a n s = ∑ i = 1 n μ ( i ) ⌊ n i 2 ⌋ ans=\sum_{i=1}^{\sqrt n}\mu(i)\lfloor \frac{n}{i^2} \rfloor ans=∑i=1n ​​μ(i)⌊i2n​⌋

整除分块即可

#include<bits/stdc++.h>
using namespace std;
inline int read(){char ch=getchar();int res=0;while(!isdigit(ch))ch=getchar();while(isdigit(ch)) res=(res<<3)+(res<<1)+(ch^48),ch=getchar();return res;
}
#define ll long long
const int N=100005;
int mu[N],pr[N],vis[N],sum[N],tot,n,k;
inline void init(){mu[1]=1;for(int i=2;i<N;++i){if(!vis[i])pr[++tot]=i,mu[i]=-1;for(int j=1;j<=tot&&i*pr[j]<N;++j){vis[i*pr[j]]=1;if(i%pr[j]==0)break;mu[i*pr[j]]=-mu[i];}}for(int i=1;i<N;++i)sum[i]=sum[i-1]+mu[i];
}
inline bool check(int x){int p=sqrt(x),ans=0;for(int i=1,nxt;i<=p;i=nxt+1){nxt=min((int)sqrt(x/(x/(i*i))),p);ans+=(x/(i*i))*(sum[nxt]-sum[i-1]);}return ans>=n;
}
int main(){int T=read();init();while(T--){n=read();int ans=0;int l=1,r=n*2;while(l<=r){int mid=((ll)l+(ll)r)>>1;if(check(mid))ans=mid,r=mid-1;else l=mid+1;}cout<<ans<<'\n';}
}

【BZOJ2440】【中山市选2011】—完全平方数(莫比乌斯函数+容斥原理)相关推荐

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

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

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

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

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

    Pre 第一次提交的时候\(WA\)了. 百思(死)不得其解(求根公式:我还活着呢!). 最后发现交错题了(尴尬). 不过这题转换到莫比乌斯函数有一点神奇巧妙. 还有一些小细节需要注意. Soluti ...

  4. 2017.3.11[bzoj2440][中山市选2011]完全平方数

    线性筛+莫比乌斯函数裸题 http://www.lydsy.com/JudgeOnline/problem.php?id=2440 考虑二分答案,对于每个数看它是第几个,即对于这个数看比他小的有多少个 ...

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

    题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2440 题意:RT. 是https://wenku.baidu.com/view/fbec9 ...

  6. bzoj2440: [中山市选2011]完全平方数

    自己写的第一个博客......... BZOJ 2440 [题意] 求第K个约数不含平方数的数 (1<=k<=10^9), 共有T组数据(T<=50). [题解] 首先题解并不是我独 ...

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

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

  8. bzoj 2440: [中山市选2011]完全平方数(二分+莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MB Submit: 4018  Solved: 1952 [Submit][S ...

  9. bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】

    二分答案,然后用莫比乌斯函数作为容斥系数,计算当前枚举的mid内有几个满足要求的数 #include<iostream> #include<cstdio> #include&l ...

  10. BZOJ 2440: [中山市选2011]完全平方数

    Time Limit: 10 Sec Memory Limit: 128 MB Submit: 5160 Solved: 2515 [Submit][Status][Discuss] Descript ...

最新文章

  1. Python再获年度编程语言,微软或成最大赢家
  2. arguments.length
  3. 获取网页源代码的最简单办法
  4. excel求期望_商务数据分析考试:决策树分析(Excel)-安聪
  5. python 去除字符串两端字符串
  6. XML 新手最佳入门教程
  7. 设计模式之组合模式(Composite 模式)
  8. 十九、PHP框架Laravel学习笔记——批量赋值和软删除
  9. 难以置信的美丽,世界的数学结构
  10. 数字延时网络混响算法研究(FDN)
  11. 计算机和资源管理器的异同,计算机应用基础ex.doc
  12. BCH编码——c语言代码
  13. 360极速浏览器兼容模式
  14. 一个微信账号只能开发一个微信小程序吗?
  15. Windows XP 电脑桌面图标后面有蓝色阴影怎么去除
  16. 用telnet逛bbs
  17. 钉钉小程序的坑 么有开启通讯录权限,导致后台报错“没有调用该接口的权限”
  18. arm嵌入式web服务器 性能,arm嵌入式web服务器
  19. 中科院 2014年工程硕士入学专业课笔试考场安排
  20. OC正式协议和非正式协议的区别

热门文章

  1. Over-COM:一种可折叠的头部医疗支架
  2. Unity中协程和线程区别
  3. 虚拟机服务器操作 -磁盘备份和恢复
  4. 如何做自媒体,这5大不同类型平台一定要了解
  5. 嵌入式c语言程序优化方法总结
  6. oracle tuexdo,Tuxedo入门
  7. 【市场分析】如何从NLP的角度对用户需求进行分析(一)
  8. 5G信道建模研究进展与展望
  9. 学习笔记二十二:GUI(三)
  10. 奇异值分解-通俗教程