Description
小 X 自幼就很喜欢数。但奇怪的是,他十分讨厌完全平方数。他觉得这些数看起来很令人难受。由此,他也讨厌所有是完全平方数的正整数倍的数。然而这丝毫不影响他对其他数的热爱。
这天是小X的生日,小 W 想送一个数给他作为生日礼物。当然他不能送一个小X讨厌的数。他列出了所有小X不讨厌的数,然后选取了第 K个数送给了小X。小X很开心地收下了。
然而现在小 W 却记不起送给小X的是哪个数了。你能帮他一下吗?Input
包含多组测试数据。文件第一行有一个整数 T,表示测试数据的组数。
第2 至第T+1 行每行有一个整数Ki,描述一组数据,含义如题目中所描述。 Output
含T 行,分别对每组数据作出回答。第 i 行输出相应的第Ki 个不是完全平方数的正整数倍的数。Sample Input
4
1
13
100
1234567
Sample Output
1
19
163
2030745
HINT
对于 100%的数据有 1 ≤ Ki ≤ 10^9, T ≤ 50本题要求第k个没有平方因子的数,直接二分答案,然后判断区间内的数的数量是否可行。因为没有平方因子就意味着μ(i)!=0,所以我们二分出了一个n之后,就计算区间的答案,根据容斥原理,满足要求的ans=n-只有一个质数因子次数大于等于2的个数+只有2个质数因子大于等于2的个数-...
每次check时间复杂度为O(√n)Code:
#include<iostream>
#include<cstdlib>
#include<cstring>
#include<cstdio>
#include<cmath>
#include<algorithm>
#include<ctime>
using namespace std;
const int N=100005;
const long long inf=(1ll<<31)-1;
long long l,r;
int t,mobius[N],k,prime[N],len,ans;
bool ok[N];
bool check(long long x){long long div=sqrt(x);int tot=0;for(int i=1;i<=div;i++) {tot+=mobius[i] * (x/(i*i));}if(tot>=k){return 1;}return 0;
}
int main(){mobius[1]=1;for(int i=2;i<=N;i++) {if(!ok[i]){prime[++len]=i;mobius[i]=-1;}for(int j=1;j<=len&& prime[j]*i<=N;j++) {ok[i*prime[j]]=1;if(i%prime[j]!=0){mobius[i*prime[j]]=-mobius[i];}else{mobius[i*prime[j]]=0;break;}}}scanf("%d",&t);long long mid;while(t--){scanf("%d",&k);l=1,r=inf;ans=inf;while(l<=r) {mid=(l+r)/2;if(check(mid)){ans=mid;r=mid-1;}else{l=mid+1;}}printf("%d\n",ans);}return 0;
}

转载于:https://www.cnblogs.com/ukcxrtjr/p/11311042.html

BZOJ2240 完全平方数相关推荐

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

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

  2. 完全平方数(打表+二分)

    链接:https://ac.nowcoder.com/acm/contest/5203/C 来源:牛客网 完全平方数 题目描述 多次查询[l,r][l,r][l,r]范围内的完全平方数个数 定义整数x ...

  3. 输出四位完全平方数_LeetCode 题解 | 279. 完全平方数

    力扣 279. 完全平方数 (点击查看题目) 题目描述 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少. 示例 ...

  4. PTA 基础编程题目集 6-7 统计某类完全平方数 C语言

    PTA 基础编程题目集 6-7 统计某类完全平方数 C语言 本题要求实现一个函数,判断任一给定整数N是否满足条件:它是完全平方数,又至少有两位数字相同,如144.676等. 函数接口定义: int I ...

  5. 【c语言】蓝桥杯算法训练 大等于n的最小完全平方数

    问题描述 输出大等于n的最小的完全平方数. 若一个数能表示成某个自然数的平方的形式,则称这个数为完全平方数 Tips:注意数据范围 输入格式 一个整数n 输出格式 大等于n的最小的完全平方数 样例输入 ...

  6. Bzoj2440 完全平方数

    Time Limit: 10000MS   Memory Limit: 131072KB   64bit IO Format: %lld & %llu Description 小 X 自幼就很 ...

  7. 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?...

    代码: package com.liron.p1; /*** 一个整数,它加上100后是一个完全平方数,再加上168又是* 一个完全平方数,请问该数是多少?* */ public class Topi ...

  8. 完全平方数的判定及整数平方根的快速求解

    原帖:http://hi.baidu.com/atyuwen/blog/item/206369fdae6d221e09244da9.html 在上个星期的"有道难题"网络预赛中,某 ...

  9. 算法------------完全平方数(Java版本)

    题目 给定正整数 n,找到若干个完全平方数(比如 1, 4, 9, 16, ...)使得它们的和等于 n.你需要让组成和的完全平方数的个数最少.示例 1:输入: n = 12 输出: 3 解释: 12 ...

最新文章

  1. 基于Centos搭建nginx+uwsgi运行django环境
  2. 【优秀博文】知乎服务化的实践与思考
  3. Objective-C中.h、.m、.mm的区别
  4. [转]5分钟实现Android中更换头像功能
  5. java面试题28 牛客 下面有关java classloader说法错误的是?
  6. php 邮件发送是html 没样式_使用python发送邮件
  7. php5.4全局变量,PHP 5 全局变量 - 超全局变量
  8. 解决adb devices无法连接夜神模拟器
  9. 深入浅出数据分析 - 数据分析引言
  10. MAC终端命令颜色设置
  11. vue移动端的日期插件带农历
  12. 2017.05.22 房多多 曾熙闭门会
  13. 基于WENET制作AI字幕
  14. python - 03【列表/元组/字符串】
  15. Sixth season fifteenth and sixteenth episode,things that could have been......(没有如果)
  16. STC单片机74hc164驱动8位数码管动态显示
  17. Kotlin学习(3):习惯用法
  18. 【LLC原理与设计】仙童半导体 LLC原理与设计
  19. 百度地图搜索功能的实现
  20. 性能检测工具:Matrix-TraceCanary 入门

热门文章

  1. 嵌入式linux tftp服务的配置
  2. 深入理解JVM内存区域与内存分配
  3. 【Spring】依赖注入 加载顺序
  4. depcomp: line 571: exec: g++: not found
  5. OpenJudge 2796: 数字求和
  6. JavaEE Tutorials (17) - Java消息服务示例
  7. 系统安全运维 Server 2008 R2 事件查看器实现日志分析
  8. 创建Server 2012 VHDX虚拟磁盘模板
  9. error2---BeginPath和EndPath之间的TextOut无法显示
  10. asp.net faq: 在html文件中,用js获取session