bzoj2986 Non-Squarefree Numbers (莫比乌斯函数)
来源:互联网 发布:java发牌程序 编辑:程序博客网 时间:2024/06/11 04:14
传送门:http://www.lydsy.com/JudgeOnline/problem.php?id=2986
首先能想到二分答案,然后判断1~X中有多少个squarefree,这里用莫比乌斯函数来容斥即可。
#include<cstdio>#include<cstring>#include<cstdlib>#include<cmath>#include<iostream>#include<algorithm>#include<set>#include<map>#include<queue>#include<stack>#include<vector>#include<bitset>using namespace std;typedef long long LL;int miu[510000];int prim[510000],primm;bool valid[510000];void mobius(int N){ miu[1]=1; for (int i=2;i<=N;i++) { if (!valid[i]) prim[++primm]=i,miu[i]=-1; for (int j=1;j<=primm&&i*prim[j]<=N;j++) { valid[i*prim[j]]=1; if (i%prim[j]==0) { miu[i*prim[j]]=0; break; } else miu[i*prim[j]]=-miu[i]; } }}LL cal(LL x){ LL res=0; for (LL i=1;i*i<=x;i++) res+=x/i/i*(LL)miu[i]; return x-res;}LL ans,n;int main(){ cin>>n; mobius(500000); LL l=1,r=210000000000LL; while (l<=r) { LL mid=(l+r)/2; if (cal(mid)>=n) r=mid-1,ans=mid; else l=mid+1; } cout<<ans<<endl; return 0;}
0 0
- bzoj2986 Non-Squarefree Numbers (莫比乌斯函数)
- BZOJ2986 Non-Squarefree Numbers
- [BZOJ2986]Non-Squarefree Numbers(二分+容斥原理)
- [莫比乌斯函数] BZOJ 2986 Non-Squarefree Numbers & BZOJ 2440 [中山市选2011]完全平方数
- bzoj 2986: Non-Squarefree Numbers
- bzoj 2986 Non-Squarefree Numbers
- bzoj 2986: Non-Squarefree Numbers (容斥原理)
- 【BZOJ】【P2986】【Non-Squarefree Numbers】【题解】【数论】
- bzoj2986
- HDU6053TrickGCD(莫比乌斯函数)
- 莫比乌斯函数
- 莫比乌斯函数
- 莫比乌斯函数
- 莫比乌斯函数
- 莫比乌斯函数
- 莫比乌斯函数
- 【数论】莫比乌斯反演证明+HDU6053(莫比乌斯函数)
- 莫比乌斯函数(数论)(转载+原创)
- 过滤器配置
- 人工智能\机器学习\统计学\数据挖掘之间有什么区别?
- 修改默认滚动条样式
- mysql导入备份数据时出错 ERROR 2005(HY000) unkonw MySQL server host。。。
- Unity3D(五)粒子系统
- bzoj2986 Non-Squarefree Numbers (莫比乌斯函数)
- jQuery的内容过滤选择器
- Leetcode 121. Best Time to Buy and Sell Stock
- Spring提高篇(七):Web 相关工具类
- 对数据结构一点一小小的理解(三)——C++ 模板库
- Android--Gradle build finished with 232 error(s) in 1m 43s
- window 多声道音频采集
- 28. Implement strStr()
- 第15章 Android性能优化