bzoj2440完全平方数
上来先吐槽题面!!!!!!
你跟我说$1$不是完全平方数昂?
看了半天样例啊。
活生生的半天$……$
莫比乌斯 反演 函数容斥一下,每次二分就好
反正本宝宝不知道反演是啥。
每次判断应该是
$$\sum^{ \lfloor \sqrt{x} \rfloor}_{i=1} \frac{x}{i^{2}}*\mu(x)$$
然后二分就好,
打表得出上界,之后就没了
/**************************************************************
Problem: 2440
User: zhangheran
Language: C++
Result: Accepted
Time:4648 ms
Memory:6560 kb
****************************************************************/ #include<iostream>
#include<cstdio>
#include<algorithm>
//#include"suqingnian.h"
using namespace std; int mu[];
const int __n=;
bool __check[];
int __size;
int _num[];
void _prime()
{
for(int _i=;_i<=__n;_i++)
{
if(!__check[_i]) _num[++__size]=_i,mu[_i]=-;
for(int _j=;_j<=__size;_j++)
{
if(_i*_num[_j]>=__n) break;
__check[_num[_j]*_i]=;
if(_i%_num[_j]==) {mu[_i*_num[_j]]=;break;}
mu[_i*_num[_j]]=mu[_i]*mu[_num[_j]];
}
}
mu[]=__check[]=;
return ;
}
// bool _isprime(int __n) {return ~__check[__n];} int t;
long long k;
long long calc(long long x)
{ long long sum=;
for(long long i=;i*i<=x;i++)
sum+=x/(i*i)*mu[i];
// printf("%lld %lld\n",x,sum);
return sum;
}
//long long che(long long l,long long r,long long)
//{
//
//}
long long hint(long long x)
{
long long ans=;
long long l=x,r=;
while(l<=r){
// printf("%lld %lld\n",l,r);
long long mid=l+r>>;
// printf("%lld \n",calc(mid));
if(calc(mid)>=x) ans=mid,r=mid-;
else l=mid+;
}return ans;
}
int main()
{
scanf("%d",&t);
_prime();
while(t--)
{
scanf("%lld",&k);
printf("%lld\n",hint(k));
}
}
bzoj2440完全平方数的更多相关文章
- bzoj2440 完全平方数 莫比乌斯值+容斥+二分
莫比乌斯值+容斥+二分 /** 题目:bzoj2440 完全平方数 链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2440 题意:求第k个小x数 ...
- [BZOJ2440]完全平方数解题报告|莫比乌斯函数的应用
完全平方数 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是小X的生日 ...
- Bzoj2440 完全平方数
Time Limit: 10000MS Memory Limit: 131072KB 64bit IO Format: %lld & %llu Description 小 X 自幼就很 ...
- BZOJ2440完全平方数(莫比乌斯反演)
Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是 ...
- 【二分+容斥+莫比乌斯反演】BZOJ2440 完全平方数
Description 求第k个没有完全平方因子的数,k<=1e9. Solution 这其实就是要求第k个µ[i](莫比乌斯函数)不为0的数. 然而k太大数组开不下来是吧,于是这么处理. 二分 ...
- [中山市选2011][bzoj2440] 完全平方数 [二分+莫比乌斯容斥]
题面 传送门 思路 新姿势get 莫比乌斯容斥 $\sum_{i=1}{n}\mu(i)f(i)$ 这个东西可以把所有没有平方质因子的东西表示出来,还能容斥掉重复的项 证明是根据莫比乌斯函数的定义,显 ...
- [bzoj2440]完全平方数(二分+mobius反演)
解题关键:由容斥原理得,num=1的倍数的数量−一个质数平方数(9,25,49...)的倍数的数量+两个质数的积平方数(36,100,225...)的数量−三个质数...... 这道题用莫比乌斯的正向 ...
- [bzoj2440]完全平方数[中山市选2011][莫比乌斯函数][线性筛][二分答案]
题意:求第k个分解质因子后质因子次数均为一的数,即求第k个无平方因子数. 题解: 首先二分答案mid,那么现在就是要求出mid以内的无平方因子数的个数. 其次枚举$\sqrt{mid}$内的所有质数, ...
- SIEVE 线性筛
今天来玩玩筛 英文:Sieve 有什么筛? 这里介绍:素数筛,欧拉筛,约数个数筛,约数和筛 为什么要用筛? 顾名思义,筛就是要漏掉没用的,留下有用的.最终筛出来1~n的数的一些信息. 为什么要用线性筛 ...
随机推荐
- php学习之if
<html> <head> <title>xxx</title> <style> #tian{ color:blue; float:left ...
- C# XML文件操作
C# XML文件操作 运行环境:Window7 64bit,.NetFramework4.61,C# 6.0: 编者:乌龙哈里 2017-02-09 参考 LINQ to XML System.Xml ...
- springMVC的多文件的异步上传实现
springMVC的MultipartFile与传统的ajax文件上传兼容性不好,采用如下的ajax方法,后台无法获取文件. $.ajax({ url: '/upload', type: 'POST' ...
- Apache Derby数据库系统使用方法
Apache Derby数据库系统使用方法 最近由于项目要求,试用了一下Apache Derby数据库,这里对了解到的内容做一个记录. Apache Derby是一个开源的关系型数据库管理系统,用Ja ...
- Golang简单写文件操作的四种方法
package main import ( "bufio" //缓存IO "fmt" "io" "io/ioutil" ...
- jar包上传到jcenter
H:\[BOOT]\gradle-5.0-bin\gradle-5.0\gradle.properties # in $HOME/.gradle/gradle.properties java6Home ...
- PrimeNG01 angular集成PrimeNG
1 开发环境 本博文基于angular5 2 步骤 2.1 创建angular5项目 详情参见百度 2.2 下载PrimeNG依赖 npm install primeng --save npm ins ...
- Docker学习笔记_进入正在运行的Docker容器
如何进入正在运行的Docker容器? 这里记录一种方法. 1.先查看container ID,并确认这个容器已经启动 docker ps -a #列出懿创建的所有容器 docker ps ...
- Linux yum失败解决
Linux yum失败解决 问题: 在CentOS 5.5中需要使用yum安装程序,出现错误: There was a problem importing one of the Python modu ...
- 自定义JTabbedPane 标签风格
自定义JTabbedPane 标签风格 2012年03月09日 20:33:12 阅读数:2435 demo 下载地址:http://download.csdn.net/detail/jinannan ...