bzoj 2986: Non-Squarefree Numbers (容斥原理)
2017-03-22 07:28
295 查看
题目描述
传送门
题目大意:选出第K个有平方因子的数。题解
之前做过一道基本上一样的题bzoj 完全平方数代码
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #include<cmath> #define LL long long #define N 1000000 using namespace std; LL n; int pd[N+3],prime[N+3],mu[N+3]; void init() { mu[1]=1; for (int i=2;i<=N;i++) { if (!pd[i]) { prime[++prime[0]]=i; mu[i]=-1; } for (int j=1;j<=prime[0];j++) { if (i*prime[j]>N) break; pd[i*prime[j]]=1; if (i%prime[j]==0) { mu[i*prime[j]]=0; break; } mu[i*prime[j]]=-mu[i]; } } } LL check(LL x) { LL ans=0; for (LL i=2;i*i<=x;i++) if (mu[i]) ans=ans-mu[i]*(x/(i*i)); return ans; } int main() { // freopen("a.in","r",stdin); // freopen("my.out","w",stdout); init(); scanf("%lld",&n); LL l=0; LL r=30000000000LL; LL ans=r; while (l<=r) { LL mid=(l+r)/2; if (check(mid)>=n) ans=min(ans,mid),r=mid-1; else l=mid+1; } printf("%lld\n",ans); }
相关文章推荐
- BZOJ 2986: Non-Squarefree Numbers [容斥原理 二分]
- [BZOJ2986]Non-Squarefree Numbers(二分+容斥原理)
- bzoj 2986: Non-Squarefree Numbers【容斥+莫比乌斯函数】
- BZOJ2986 Non-Squarefree Numbers
- BZOJ2986 Non-Squarefree Numbers
- [莫比乌斯函数] BZOJ 2986 Non-Squarefree Numbers & BZOJ 2440 [中山市选2011]完全平方数
- bzoj2986 Non-Squarefree Numbers (莫比乌斯函数)
- bzoj 2986: Non-Squarefree Numbers
- bzoj 2986 Non-Squarefree Numbers
- 2986: Non-Squarefree Numbers 莫比乌斯函数+二分+容斥
- 2986: Non-Squarefree Numbers
- 【BZOJ】【P2986】【Non-Squarefree Numbers】【题解】【数论】
- HUST 1214 Cubic-free numbers II (容斥原理)
- SPOJ 16637. Non-Square Free Numbers
- Bzoj 1853: [Scoi2010]幸运数字 容斥原理,深搜
- 在OpenCV for Android 2.4.5中使用SURF(nonfree module)
- CodeForces-233B-Non-square Equation
- bzoj 4487: [Jsoi2015]染色问题 组合数学+容斥原理
- [BZOJ 1042][HAOI 2008]硬币购物(背包+容斥原理)
- BZOJ 1042: [HAOI2008]硬币购物 [容斥原理]