BZOJ 2440 [中山市选2011]完全平方数 ——莫比乌斯函数
$\sum_{i=1}^n[i==d^2*p]$ 其中p无平方因子
$=\sum_{d^2\mid n,d>=2}\sum_{i=1}^{\lfloor {n/d^2} \rfloor} \left| \mu(i) \right |$
然后就成了计算$\left| \mu(i) \right |$ 的前缀和?
但是貌似不太可能啊 然后我们重新考虑容斥。
发现最终的结果 s=一个质数平方的倍数-两个质数乘积平方的倍数-三个的-五个的+6个的
发现系数和$\mu$一样,然后就可以枚举d进行计算了
$$\sum_{d^2<=n}\mu(d)*\lfloor {n/d^2} \rfloor$$
貌似就可以了
#include <cmath>
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
using namespace std;
#define F(i,j,k) for (ll i=j;i<=k;++i)
#define D(i,j,k) for (ll i=j;i>=k;--i)
#define ll long long
#define maxn 100005
int vis[maxn],mu[maxn],pr[maxn],top=0;
void init()
{
mu[1]=1;
F(i,2,maxn-1)
{
if (!vis[i]) vis[i]=1,pr[++top]=i,mu[i]=-1;
F(j,1,top)
{
if (i*pr[j]>=maxn) break;
vis[i*pr[j]]=1;
if (i%pr[j]==0){mu[i*pr[j]]=0;break;}
mu[i*pr[j]]=-mu[i];
}
}
} int t;ll k; ll test(ll n)
{
ll t=sqrt(n),ret=0;
F(i,1,t) ret+=mu[i]*(n/(i*i));
return ret;
} int main()
{
init();
scanf("%d",&t);
while (t--)
{
scanf("%lld",&k);
ll l=0,r=30000000000LL;
while (l<r)
{
ll mid=(l+r)>>1;
if (test(mid)>=k) r=mid;
else l=mid+1;
}
printf("%lld\n",r);
}
}
BZOJ 2440 [中山市选2011]完全平方数 ——莫比乌斯函数的更多相关文章
- BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数
		
BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数 题面 找出第k个不是平方数的倍数的数(1不是平方数, \(k \le 10^9\)). 题解 首先二分答案,问题就转化成了求\([ ...
 - Bzoj 2440: [中山市选2011]完全平方数(莫比乌斯函数+容斥原理+二分答案)
		
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MB Description 小 X 自幼就很喜欢数.但奇怪的是,他十分讨厌完全平 ...
 - BZOJ.2440.[中山市选2011]完全平方数(莫比乌斯函数 二分)
		
题目链接 总感觉博客园的\(Markdown\)很..\(gouzhi\),可以看这的. 题意即求第\(k\)个无平方因子数. 无平方因子数(Square-Free Number),即分解之后所有质因 ...
 - BZOJ 2440 [中山市选2011]完全平方数 (二分 + 莫比乌斯函数)
		
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 4805 Solved: 2325[Submit][Sta ...
 - BZOJ 2440: [中山市选2011]完全平方数 [容斥原理 莫比乌斯函数]
		
2440: [中山市选2011]完全平方数 Time Limit: 10 Sec Memory Limit: 128 MBSubmit: 3028 Solved: 1460[Submit][Sta ...
 - BZOJ 2440: [中山市选2011]完全平方数( 二分答案 + 容斥原理 + 莫比乌斯函数 )
		
先二分答案m,<=m的有m-∑(m/pi*pi)+∑(m/pi*pi*pj*pj)-……个符合题意的(容斥原理), 容斥系数就是莫比乌斯函数μ(预处理)... ----------------- ...
 - [BZOJ 2440] [中山市选2011] 完全平方数 【二分 + 莫比乌斯函数】
		
题目链接:BZOJ - 2440 题目分析 首先,通过打表之类的方法可以知道,答案不会超过 2 * k . 那么我们使用二分,对于一个二分的值 x ,求出 [1, x] 之间的可以送出的数有多少个. ...
 - bzoj 2440: [中山市选2011]完全平方数【莫比乌斯函数+二分】
		
二分答案,然后用莫比乌斯函数作为容斥系数,计算当前枚举的mid内有几个满足要求的数 #include<iostream> #include<cstdio> #include&l ...
 - bzoj 2440: [中山市选2011]完全平方数
		
#include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...
 
随机推荐
- FusionCharts3.2.1 参数的详细说明和功能特性
			
功能特性animation 是否动画显示数据,默认为1(True)showNames 是否显示横向坐标轴(x轴)标签名称rotat ...
 - Jenkins怎么启动和停止服务
			
笔者没有把Jenkins配置到tomcat中,每次都是用命令行来启动Jenkins.但是遇到一个问题:Jenkins一直是开着的,想关闭也关闭不了.百度了一些资料,均不靠谱(必须吐槽一下百度).于是进 ...
 - Monkey安装和使用介绍
			
安装步骤1)安装sdk环境在系统环境变量中配置 ANDROID_HOMED:\sdk PATH%ANDROID_HOME%\tools;%ANDROID_HOME%\platform-tools;%A ...
 - 51nod 1212 无向图最小生成树(Kruskal模版题)
			
N个点M条边的无向连通图,每条边有一个权值,求该图的最小生成树. Input 第1行:2个数N,M中间用空格分隔,N为点的数量,M为边的数量.(2 <= N <= 1000, 1 &l ...
 - Java生成固定长度的随机字符串(以大小写字母和数字)
			
package org.jimmy.autosearch2019.test; import java.util.ArrayList; import java.util.Random; /** * @a ...
 - CPP-练习
			
HW: 1.局部变量能否和全局变量重名? 答:能,局部会屏蔽全局.要用全局变量,需要使用"::" ;局部变量可以与全局变量同名,在函数内引用这个变量时,会用到同名的局部变量,而不会 ...
 - QT+常用控件_Line Edit
			
#include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #incl ...
 - 编写shellcode的几种姿势
			
今天开始在做hitcon-training的题目,做到lab2就发现了自己的知识盲区,遇到无法执行shell的情况,需要自己打shellcode执行cat flag 操作 经过一系列的搜索,发现了几种 ...
 - Noip2016 提高组 蚯蚓
			
刚看到这道题:这题直接用堆+模拟不就可以了(并没有认真算时间复杂度) 于是用priority_queue水到了85分-- (STL大法好) 天真的我还以为是常数问题,于是疯狂卡常--(我是ZZ) 直到 ...
 - Php教程
			
第一部:PHP基础部分(131集,发布完毕) 讲html与PHPt基础,PHP环境搭建,与留言本编写. 下载地址:① HTML视频[2014新版] http://pan.baidu.com/s/1ve ...