BZOJ 2440 完全平方数 莫比乌斯反演模板题
题目链接:
https://www.lydsy.com/JudgeOnline/problem.php?id=2440
题目大意:
求第k个无平方因子的数
思路:
二分答案x,求1-x中有多少个平方因子的数
可以在根号x的范围内求出来


#include<bits/stdc++.h>
#define IOS ios::sync_with_stdio(false);//不可再使用scanf printf
#define Max(a, b) ((a) > (b) ? (a) : (b))//禁用于函数,会超时
#define Min(a, b) ((a) < (b) ? (a) : (b))
#define Mem(a) memset(a, 0, sizeof(a))
#define Dis(x, y, x1, y1) ((x - x1) * (x - x1) + (y - y1) * (y - y1))
#define MID(l, r) ((l) + ((r) - (l)) / 2)
#define lson ((o)<<1)
#define rson ((o)<<1|1)
#pragma comment(linker, "/STACK:102400000,102400000")//栈外挂
using namespace std;
inline int read()
{
int x=,f=;char ch=getchar();
while (ch<''||ch>''){if (ch=='-') f=-;ch=getchar();}
while (ch>=''&&ch<=''){x=x*+ch-'';ch=getchar();}
return x*f;
} typedef long long ll;
const int maxn = + ;
const int maxm = + ;
const int MOD = ;//const引用更快,宏定义也更快
const ll INF = ;
const double eps = 1e-;
bool not_prime[maxn];
int prime[maxn];
int Mob[maxn];
void Mobius_sieve(int n)
{
int tot = ;
not_prime[] = ;
Mob[] = ;
for(int i = ; i <= n; i++)
{
if(!not_prime[i])prime[tot++] = i, Mob[i] = - ;
for(int j = ; j < tot && 1LL * prime[j] * i <= n; j++)
{
not_prime[prime[j] * i] = ;//每个合数x由它最小素因子prime[j]筛掉
Mob[i * prime[j]] = (i % prime[j] ? -Mob[i]: );
if(i % prime[j] == )break;//如果i % prime[j] == 0,不停止循环
//那么接下来将用prime[j+1]筛去i*prime[j+1],但实际上应该用prime[i]筛去,因为i%prime[j]==0
}
}
}
ll judge(ll m)
{
ll sum = ;
for(ll i = ; i * i <= m; i++)
{
ll tmp = m / i / i;
sum += Mob[i] * tmp;
}
return sum;
}
int main()
{
Mobius_sieve();
int T;
scanf("%d", &T);
while(T--)
{
ll k;
scanf("%lld", &k);
ll l = , r = INF;
ll ans;
while(l <= r)
{
ll m = (l + r) / ;
if(judge(m) >= k)ans = m, r = m - ;
else l = m + ;
}
printf("%lld\n", ans);
}
return ;
}
BZOJ 2440 完全平方数 莫比乌斯反演模板题的更多相关文章
- BZOJ 2440 完全平方数(莫比乌斯反演,容斥原理)
http://www.lydsy.com/JudgeOnline/problem.php?id=2440 题意:求第K个没有平方因子的数 思路:首先,可以二分数字,然后问题就转变成x以内有多少无平方因 ...
- bzoj 2440 简单莫比乌斯反演
题目大意: 找第k个非平方数,平方数定义为一个数存在一个因子可以用某个数的平方来表示 这里首先需要考虑到二分才可以接下来做 二分去查找[1 , x]区间内非平方数的个数,后面就是简单的莫比乌斯反演了 ...
- HYSBZ 2440 完全平方数(莫比乌斯反演)
链接:http://www.lydsy.com/JudgeOnline/problem.php?id=2440 若i为质数,n为i*i的倍数,则称n为含平方因子数. 求1~n的无平方因子数. F(x) ...
- hdu1695莫比乌斯反演模板题
hdu1695 求1<=i<=n&&1<=j<=m,gcd(i,j)=k的(i,j)的对数 最后的结果f(k)=Σ(1<=x<=n/k)mu[x]* ...
- bzoj 2440 (莫比乌斯函数)
bzoj 2440 完全平方数 题意:找出第k个不是完全平方数的正整数倍的数. 例如 4 9 16 25 36什么的 通过容斥原理,我们减去所有完全数 4有n/4个,但是36这种会被重复减去, ...
- bzoj [SDOI2014]数表 莫比乌斯反演 BIT
bzoj [SDOI2014]数表 莫比乌斯反演 BIT 链接 bzoj luogu loj 思路 \[ \sum\limits_{i=1}^{n}\sum\limits_{j=1}^{m}a*[f[ ...
- $BZOJ$2818 $gcd$ 莫比乌斯反演/欧拉函数
正解:莫比乌斯反演/欧拉函数 解题报告: 传送门$QwQ$ 一步非常显然的变形,原式=$\sum_{d=1,d\in prim}^{n}\sum_{i=1}^{n}\sum_{j=1}^{n}[gcd ...
- BZOJ 2440 完全平方数(莫比乌斯反演+二分查找)
题目链接:http://acm.hust.edu.cn/vjudge/problem/viewProblem.action?id=23362 题意:定义含有平方数因子的数为完全平方数(平方数因子不包含 ...
- BZOJ 2440 完全平方数
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Submit: 966 Solved: 457 [Submit][Sta ...
随机推荐
- WeifenLuo.WinFormsUI.Docking.dll的用法
基本框架 说明 weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠.拖拽等功能.Weif ...
- IIS利用X-Forwarded-For获得来访者的真实IP
https://help.aliyun.com/knowledge_detail/37948.html
- 【转载】SQL Server 2012将数据导出为脚本详细图解
前记: 从SQL SERVER 2008开始,我们就可以很方便的导出数据脚本,而无需再借助存储过程,但是SQL Server 2012和SQL Server 2008的导出脚本的过程还有一点细微的差别 ...
- hdu 1054 Strategic Game 经典树形DP
Strategic Game Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) ...
- String拾遗
简介: String作为日常最常用的类,还是有必要对其中的细节做一些了解的,这篇就结合源码来看看这个常用的类. 一. 总述 类图如下: 从图中可以看到String是实现了 java.io.Serial ...
- 前端之困 · XSS CookBook
方法论 发掘漏洞的时间要具体到是检测什么目标了,找 Google 的,和找腾讯的时间肯定不会一样. 至于是如何发现的,不同类型的 XSS 漏洞,可能不尽相同. 反射型 以及一些 DOM 型,一般建议是 ...
- javascript变量的引用类型值
JavaScript变量可以用来保存俩种类型的值:基本类型和引用类型值 前言 JS变量可以用来保存两种类型的值:基本类型值和引用类型值.基本类型的值源自一下5种基本数据类型:Underfined.Nu ...
- MySQL允许root远程访问
1. mysql -u root -p; // 登录mysql, 并输入密码 2. use mysql; // 打开 mysql 数据库 3. update user ...
- 如何用kindle看论文
kindle的pdf显示效果向来不好,那么如何把pdf转换成mobi格式呢 可以把个人文件(pdf)发送至您的[发送至Kindle]电子邮箱时,在电子邮件的主题栏中填写"convert&qu ...
- C#实现字符串相似度算法
字符串的相似性比较应用场合很多,像拼写纠错.文本去重.上下文相似性等. 评价字符串相似度最常见的办法就是: 把一个字符串通过插入.删除或替换这样的编辑操作,变成另外一个字符串,所需要的最少编辑次数,这 ...