bzoj2440
2015-05-30 23:15
141 查看
二分答案显然。
然后使用莫比乌斯函数~
然后使用莫比乌斯函数~
#include<cstdio> #include<cstdlib> #include<iostream> #include<algorithm> const int SIZE = 2e9, MAXN = 5e4; int k; int u[MAXN]; int prime[MAXN], tot; bool check[MAXN]; void PreWork() { u[1] = 1; for(int i = 2; i < MAXN; i++) { if(!check[i]) prime[++tot] = i, u[i] = -1; for(int j = 1, t; j <= tot && (t = prime[j]*i) < MAXN; j++) { check[t] = true; if(!(i % prime[j])) {u[t] = 0; break;} u[t] = -u[i]; } } return; } int Calcu(int x) { int ret = 0; for(int i = 1; i*i <= x; i++) ret += x/(i*i)*u[i]; return ret; } void Solve() { scanf("%d",&k); int l = 1, r = k<<1; // f[l] < k <= f[r] if(Calcu(l) >= k) printf("%d\n",l); else { while(l + 1 != r) { int mid = ((long long)l + r)>>1; if(k <= Calcu(mid)) r = mid; else l = mid; } printf("%d\n",r); } } int main() { int T; #ifndef ONLINE_JUDGE freopen("bzoj2440.in","r",stdin); freopen("bzoj2440.out","w",stdout); #endif PreWork(); scanf("%d",&T); while(T--) Solve(); #ifndef ONLINE_JUDGE fclose(stdin); fclose(stdout); #endif return 0; }
相关文章推荐
- 在ASP.NET 5中如何方便的添加前端库
- bzoj2440 分类: bzoj 2015-05-30 23:15 29人阅读 评论(0) 收藏
- 云计算和其三种服务模式:IaaS,PaaS和SaaS
- 如何使用Monit部署服务器监控系统
- 计算微博昵称的size
- Linux: centos软件包管理的3种方式
- bzoj2301
- BZOJ 1218: [HNOI2003]激光炸弹( 前缀和 + 枚举 )
- 转:六年测试经验总结感悟
- bzoj2301 分类: bzoj 2015-05-30 23:14 33人阅读 评论(0) 收藏
- 记事本部分功能
- SRS文档
- 算法学习:最富盛名的程序设计竞赛
- 在Google Map中显示多个Marker并画出Polygon
- javascript笔记(一)
- 周末充电之WPF(一).初试牛刀
- 问题汇总
- TCP传输中使用AES加密和gizp压缩
- TCP传输中使用AES加密和gizp压缩
- 字符串替换