传送门

题意简述:qqq次询问(q≤500)(q\le500)(q≤500),每次问第kkk个不被除111以外的完全平方数整除的数是多少(k≤1e9)(k\le1e9)(k≤1e9)。


思路:考虑二分答案为xxx,然后用容斥原理来解决,ans=n−只有一个质数因子次数大于等于2的个数+只有2个质数因子大于等于2的个数−...ans=n-只有一个质数因子次数大于等于2的个数+只有2个质数因子大于等于2的个数-...ans=n−只有一个质数因子次数大于等于2的个数+只有2个质数因子大于等于2的个数−...

然后这个东西跟莫比乌斯函数是一样的啊。

因此我们线性筛预处理莫比乌斯函数来当容斥系数。

代码:

#include<bits/stdc++.h>
#define ri register int
using namespace std;
const int N=1e5+5;
int n,m,pri[N],mu[N],tot=0,k;
bool vis[N];
typedef long long ll;
inline int read(){
	int ans=0;
	char ch=getchar();
	while(!isdigit(ch))ch=getchar();
	while(isdigit(ch))ans=(ans<<3)+(ans<<1)+(ch^48),ch=getchar();
	return ans;
}
inline void init(){
	mu[1]=1;
	for(ri i=2;i<=100000;++i){
		if(!vis[i])pri[++tot]=i,mu[i]=-1;
		for(ri j=1;j<=tot&&i*pri[j]<=100000;++j){
			vis[i*pri[j]]=1;
			if(!(i%pri[j])){mu[i*pri[j]]=0;break;}
			mu[i*pri[j]]=-mu[i];
		}
	}
}
inline bool check(ll x){
	int sum=0;
	for(ll i=1,up=sqrt(x);i<=up;++i)sum+=mu[i]*(x/(i*i));
	return sum>=k;
}
int main(){
	init();
	ll l,r,ans;
	for(ri tt=read();tt;--tt){
		k=read();
		l=1,ans=r=k*2;
		while(l<=r){
			ll mid=l+r>>1;
			if(check(mid))r=mid-1,ans=mid;
			else l=mid+1;
		}
		cout<<ans<<'\n';
	}
	return 0;
}

2019.02.09 bzoj2440: [中山市选2011]完全平方数(二分答案+容斥原理)的更多相关文章

  1. BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )

    先二分答案m,<=m的有m-∑(m/pi*pi)+∑(m/pi*pi*pj*pj)-……个符合题意的(容斥原理), 容斥系数就是莫比乌斯函数μ(预处理)... ----------------- ...

  2. BZOJ2440: [中山市选2011]完全平方数(莫比乌斯+容斥原理)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4920  Solved: 2389[Submit][Sta ...

  3. BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec  Memory Limit: 128 MBSubmit: 4805  Solved: 2325[Submit][Sta ...

  4. Bzoj 2440: [中山市选2011]完全平方数(莫比乌斯函数+容斥原理+二分答案)

    2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平 ...

  5. BZOJ2440 中山市选2011完全平方数(容斥原理+莫比乌斯函数)

    如果能够知道不大于n的合法数有多少个,显然就可以二分答案了. 考虑怎么求这个.容易想到容斥,即枚举完全平方数.我们知道莫比乌斯函数就是此种容斥系数.筛出来就可以了. 注意二分时会爆int. #incl ...

  6. BZOJ2440 [中山市选2011]完全平方数

    本文版权归ljh2000和博客园共有,欢迎转载,但须保留此声明,并给出原文链接,谢谢合作. 本文作者:ljh2000作者博客:http://www.cnblogs.com/ljh2000-jump/转 ...

  7. BZOJ 2440 [中山市选2011]完全平方数 二分+容斥

    直接筛$\mu$?+爆算?再不行筛素数再筛个数?但不就是$\mu^2$的前缀和吗? 放...怕不是数论白学了$qwq$ 思路:二分+容斥 提交:两次(康了题解) 题解: 首先答案满足二分性质(递增), ...

  8. BZOJ2440:[中山市选2011]完全平方数(莫比乌斯函数)

    Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平方数.他觉得这些数看起来很令人难受.由此,他也讨厌所有是完全平方数的正整数倍的数.然而这丝毫不影响他对其他数的热爱. 这天是 ...

  9. 题解【bzoj2440 [中山市选2011]完全平方数】

    Description 求第 \(k\) 个不含平方因子的正整数.多组询问.\(k \leq 10^9, T \leq 50\) Solution 网上的题解几乎都是容斥,这里给一个简单的也挺快的做法 ...

随机推荐

  1. unity项目开发必备插件Asset Hunter 2(资源猎人2)

    unity必备插件 Asset Hunter 2 2.4 , 工程项目过大,垃圾太多之后的清洁利器,能识别 ,移除你用不到的资源 扫码时备注或说明中留下邮箱 付款后如未回复请至https://shop ...

  2. Codeforces Beta Round #65 (Div. 2)

    Codeforces Beta Round #65 (Div. 2) http://codeforces.com/contest/71 A #include<bits/stdc++.h> ...

  3. Node使用 Express框架,实现文件上传

    一 安装依赖包 npm install multer --save 二 客户端上传文件 <!DOCTYPE html> <html> <head> <meta ...

  4. mysql之 安装(Mac)

    1.官网下载安装包:https://dev.mysql.com/downloads/mysql/ 2.设置环境变量:(1)首先mysql的安装位置为:/usr/local/mysql/bin (2)在 ...

  5. jsp页面\n换行替换

    1,js替换 var text= $(this).text(); var reg = new RegExp("\\n","g");//g,表示全部替换. tex ...

  6. errror:[test_rig3.launch] is neither a launch file in package [svo_ros] nor is [svo_ros] a launch file name The traceback for the exception was written to the log file

    1. 打开一个终端,运行roscore 2. 打开另一个终端,运行 roslaunch svo_ros test_rig3.launch 出现errror: 忘记关键步骤了 $ cd <path ...

  7. go语言中的方法method

    package main; import "fmt" //重新定义一个类型 //为该INT类型扩展方法 type INT int; type A struct { name str ...

  8. JFinal上传文件时用getFile()方法报错

    原因是缺少cos.jar包,补上即可.

  9. CSS-calc 兼容写法

    width: 90%;/*写给不支持calc()的浏览器*/ width:-moz-calc(100% - (10px + 5px) * 2); width:-webkit-calc(100% - ( ...

  10. MongoDb进阶实践之八 MongoDB的聚合初探

    一.引言 好久没有写东西了,MongoDB系列的文章也丢下好长时间了.今天终于有时间了,就写了一篇有关聚合的文章.一说到“聚合”,用过关系型数据库的人都应该知道它是一个什么东西.关系型数据库有“聚合” ...