莫比乌斯函数/容斥原理

  PoPoQQQ讲义引入例题= =

  比较水……就是莫比乌斯函数的简单应用,也可理解为乱容斥一下……

  二分答案——>求1~x有多少个无平方因子的数Q(x)。

引用一下PoPoQQQ的题解:

•根据容斥原理可知 对于sqrt(x)以内所有的质数 有
•  x以内的无平方因子数
•=0个质数乘积的平方的倍数的数的数量(1的倍数)
•-每个质数的平方的倍数的数的数量(9的倍数,25的倍数,...)
•+每2个质数乘积的平方的倍数的数的数量(36的倍数,100的倍数,...)-...
•容易发现每个乘积a前面的符号恰好是aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFMAAAAyCAIAAACveHCoAAACFElEQVRoge3a0bmDIAwG0MzFQMzDNCzDMN6HVkWU5A9EvP0wr9qQIwiKpWXWoKcLeCxe+XzxyueLVz5fPCdPwbmQnsvyiDwFR0Q+2mSLnoj0/OFyW/UhqU4/Vn4LO0+twI+UR093uRvyD5N/+uRG97KsdqzjB8m/boPJ3KydMfJPX9wP3+hAUyr5mraWt3L86x4Bz2qQ7iuN/An4+uMiQfRVGkpXyDvh2sntdMum4MjHLV81HdggLu+Fa7q8MlGl4Jzjq8gL4emwXBJIcLzLmelwz8ZdR6xNVC7BK8f36w92OT83YyasUVDeCAc76XR67WTsFt7l3HmYvBWuk4trMThtZ3KmVUjeDMdqKM6V4VIu6Hoj8ma4Ri4PZBhuJm+HK0a7DFesEkbyHjgsF1d9bNbSnCvKu+BowdLDR5YGeC6wWdX64OoV+DJL9ORCwJ/+TZ5kuNGad8R2OPrais6VzPRS9ORCKlb6FELdBD498fL8Tal8VSIXUtnIyb0gc9exoeMrypY4S5KCg3Lxw4OVH+B5rDkP3V7DQfQyU1F6luPq6l5man9LXS/5oagiHbRgg/skl3fP+ZgAMtiZyMZad/zUbpTtFvHv7EDa7xEPsffvOt8zOjV1tYTuM8uVHH81uLc2XWg/LF7IGzaQNNH46dM86VnetGWoDFO92VfkIR/Alkn/OfAv4pXPF698vnjl88W88j+EB2q8FnJm/AAAAABJRU5ErkJggg==" alt="" width="40" height="25" />(例如aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJ0AAAAxCAIAAABPmjwUAAACk0lEQVR4nO2byQGFIAxEqcuCrMdqbMZi/Ad3fjYBUcfMUWV9JBiMYXQhKtzdAdclcq6Ycq6Ycq6Ycq6Ycq6Ycq6Ycq6Yuo1r34a2/7s6dE04iHiGLgmmeSKSB3oH174NITTdQF0mFY9uehIRbjwHr+HKMKVQ7cfIrQIktn0bQtMNB5f1Dq4c1LFvyct7t0w7ZDC0s7YV/QKuPAVpw1zJStzR0G7L+fFcJ6okHEtBtigk2ddwneGk9HIeI78iMup+ql7CdTG5pE7qm2hW9Y9UZa7yXsfdX6+mY1VKwoGtyzUTa8LeOvatZWhZTTxRVbnWxjqVNBVb4wIQsDW5rnPHNKVgPdXD+NRFw7W1Yn/ylCqvl4pc07CejrDZs0R5Zs3NONejErHaDYmt0DS3G1cIT1yNayLW7Pk+mi8/SPm88WKV9wG1uKZiLWFHO7R8Hc41loVrMtYi/tHiy2/lWl51uKZjLbPvGUIl5xpL56phlYLH9PcmqhbL/qq04+/Di8xYyfsFviRavtl4nBNL46od5Sj3ixisevRfxi08R9dzFTdIKlGlb7kINrWLUw1iabQD4su5HuLHXRuLBcWGElMdLXO+PMFnRFidKwhWkatxyxG5qhmC8XZFTqzyGe1Yx6GGOZNL6uK+ARSsQsJeRIRHK3G1JMhZIhn1+yj3NnPuTPn1EQ5vRtvsRlPFjpnnOnRNMRO4MlcFMA/GJtGbsVxLYh0z8tYUQeatmSS/eXBcy+fmnvhOfrLOL1LVXihprrNvK21ehReLIQJClZr2RXHNyzQzdKhExd+Fahr5P9frD2+y2X6XqTHyo7hqB8KFlP634yf+k8wVZ68oMf5X5f+rY8q5Ysq5Ysq5Ysq5Ysq5Ysq5YuoHoQGeiXDzRugAAAAASUVORK5CYII=" alt="" width="74" height="23" />故9对答案的贡献为负;aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAxCAIAAACdyjZMAAACc0lEQVR4nO2b2wGDIAxFmcuBnMdpXMZh7If1UUrIDQUSbe5nBYF7EMKjYXWpKmhX4N/lAJTlAJTlAJTlAJTlAJTlAJTlAJSlBmAewzgLEp/asonyK2iZhrOyGWkAmMcQwjAtfMp3K67GR6+xRuGjq1gEgJt/NiXTCFMQ5jGEYVqyveZLXQHA7p9t4L01xeAtqPNs6gcANkri/jWDIQaCJvQCsNnP9/6z6tA49ZnLDAJzAN6fJFubMvslJfSRMQD7iMhVptx+QSFd1AjA8VrCn/Tz41euLoKZK5fdAoE2AH70n+nVl+CtzEK0oB5qAqCv//GCBrD1yKJPoAWAo3nEKxn/mZp8LF6i5BcW2ZeIppCvAjGBbBsAKPMfHtfPdMkmYuOTZBK5G4BC/9FOyRvMEILT9FF1AIX+w5YA6YCP4Od5vJpqAyj1vyYA4Gt6LIBi/2EA0FDFDvFPBVDuPz4qIyEk26qHAuD8z3kHR4ZIjdklhSQOvU8UBPuffA5HhkCV9ySkCY8MQ7mxgXku6JQc6T0BECdpR6EVAWQH8et2wf54HqmVAL4XnVuLIXOEuv/1ACRuI1x+H+e408X2r0Jb9vKo6TzXHEP+VwPwtSMWw4hH0mTbZfvECQbYeRcNr7tSQwOlHADklF+yRQDHhrmtuVxlRYU0EN1haXtoAMs0VOtO7Q8MbR1JCkQCqOn/ih/Kl8naobxAFID6t202k1oguLH9FAAu5C5UkztUm/33dH9NA4CP0QtUmcHN3V9TANovKCtBuL/565oCwG4J1NGv18utX09HRX0BBpYz/yH/h4yyHICyHICyHICyHICyHICyHICyXlapXv3d1AXDAAAAAElFTkSuQmCC" alt="" width="55" height="21" />,故36对答案的贡献为正)
•x以内i^2的倍数有aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEMAAABbCAIAAACnLa/SAAAB+klEQVR4nO2ayZXDIAxA1UD6SA10kSbURzqggEwbOqUTimEOjhO8jDMBISm2/tF+RvqPHQx5L4B2Amy4iT3cxB67NSEECDHp5PKeFAMA0uo7N9HBTezhJvZwE3u4iT3cpDUkLKL+8fizYqVMxmRHXnEJ155+Xrh063oaDcWlGIYUCKE+hFI/GV1CTJmwtkEti1To8c9egTweimNXWSt8BaqMwq1j1Wp5qiasXU+nnyAiZ6XomKQYhlGLUUXDhLCYSCbti6heSshkyBmpmAZfj19eLbUjYzJZppTRylVKY31Lta5Hyovv+cZiX9Xbw03scUiT6xngdLkLJFXF/XICOF9X3+22TtxECDexh5v8B+BD04RRQ9lEHDexh5vYQ9mkPKqQO5FgX9U/zu9yzuOJRYvMLQBA+Fl919kkEZV5pxiaVBRN5jS2XjsmKYZvbV1TnofFtRgxKTt/JSZMGDyETcbz7GnahCw3KNomM40UsbZyVFtXeefQPNHrmaxo7GQ+aUXOhPv+fU5/k9kPRN32BWJ1srjn5UbKpLuIlEl/kU9M2m+xu+6dt9JjM+k9bOWcZUxERCRMZEQkTFj/GNoO09dESKS/yeSHleYt7ptAPU3GFS8S145qK1JPk2LV9f09Xgg3scdhTbboPmO8T+FwJl+Mm9jDTeyxH5Nfu23a9wjMKV4AAAAASUVORK5CYII=" alt="" width="46" height="61" />个 故有aaarticlea/png;base64,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" alt="" width="136" height="53" />
 /**************************************************************
Problem: 2440
User: Tunix
Language: C++
Result: Accepted
Time:2360 ms
Memory:10060 kb
****************************************************************/ //BZOJ 2440
#include<cstdio>
#include<cstdlib>
#include<cstring>
#include<iostream>
#include<algorithm>
#define rep(i,n) for(int i=0;i<n;++i)
#define F(i,j,n) for(int i=j;i<=n;++i)
#define D(i,j,n) for(int i=j;i>=n;--i)
using namespace std; int getint(){
int v=,sign=; char ch=getchar();
while(ch<''||ch>'') {if (ch=='-') sign=-; ch=getchar();}
while(ch>=''&&ch<='') {v=v*+ch-''; ch=getchar();}
return v*=sign;
}
/*******************tamplate********************/
const int N=1e6+;
typedef long long LL;
int mu[N],prime[N];
bool check[N];
void getmu(int n){
int tot=;
mu[]=;
for(int i=;i<n;++i){
if (!check[i]){
prime[tot++]=i;
mu[i]=-;
}
rep(j,tot){
if (i*prime[j]>n) break;
check[i*prime[j]]=;
if (i%prime[j]) mu[i*prime[j]]=-mu[i];
else{
mu[i*prime[j]]=;
break;
}
}
}
}
int judge(int x){
int ans=;
for(int i=;i*i<=x;i++)
ans+=mu[i]*((LL)x/(i*i));
return ans;
}
int main(){
int T=getint(),n;
getmu(N-);
while(T--){
n=getint();
int l=,r=n*,mid=,now=;
while(l<r){
mid=l+(r-l>>);
now=judge(mid);
if (now<n) l=mid+;
else r=mid;
}
printf("%d\n",l);
}
return ;
}

【BZOJ】【2440】【中山市选2011】完全平方数的更多相关文章

  1. BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数

    BZOJ 2440 [中山市选2011]完全平方数 | 莫比乌斯函数 题面 找出第k个不是平方数的倍数的数(1不是平方数, \(k \le 10^9\)). 题解 首先二分答案,问题就转化成了求\([ ...

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

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

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

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

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

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

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

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

  6. [BZOJ 2440] [中山市选2011] 完全平方数 【二分 + 莫比乌斯函数】

    题目链接:BZOJ - 2440 题目分析 首先,通过打表之类的方法可以知道,答案不会超过 2 * k . 那么我们使用二分,对于一个二分的值 x ,求出 [1, x] 之间的可以送出的数有多少个. ...

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

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

  8. bzoj 2440: [中山市选2011]完全平方数

    #include<cstdio> #include<iostream> #include<cstring> #include<cmath> #defin ...

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

    题目链接 总感觉博客园的\(Markdown\)很..\(gouzhi\),可以看这的. 题意即求第\(k\)个无平方因子数. 无平方因子数(Square-Free Number),即分解之后所有质因 ...

  10. 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} \lef ...

随机推荐

  1. HTML+CSS学习笔记 (15) - css样式设置小技巧

    水平居中设置-行内元素 我们在实际工作中常会遇到需要设置水平居中场景,今天我们就来看看怎么设置水平居中的. 如果被设置元素为文本.图片等行内元素时,水平居中是通过给父元素设置 text-align:c ...

  2. OC4_XML文件解析

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-// ...

  3. JavaScript写选项卡

    方法一: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  4. 8款超酷体验的jQuery/CSS3应用插件

    1.jQuery/CSS3实现Android Dock菜单效果 这是一款基于jQuery和CSS3的Android Dock菜单效果,点击底部的按钮即可让应用图标浮动上来,并且按钮也出现3D的翻转效果 ...

  5. 杭电ACM2084--数塔

    http://acm.hdu.edu.cn/showproblem.php?pid=2084 这种DP是相对容易的,一个二维数组,遍历一次,计算结果,存在指定位置. 本题关键代码是: a[i-1][j ...

  6. 杭电ACM2057--A + B Again

    这是题目 A + B Again 这是源代码: #include <stdio.h> int main() { __int64 a,b; while (scanf("%I64X ...

  7. Codevs 1474 十进制转m进制

    时间限制: 1 s    空间限制: 128000 KB    题目等级 : 白银 Silver 题目描述 Description 将十进制数n转换成m进制数 m<=16 n<=100 输 ...

  8. GNU Binutils工具

    参考<程序员的自我修养---连接.装载与库> 以下内容转贴自 http://www.cnblogs.com/xuxm2007/archive/2013/02/21/2920890.html ...

  9. 链接与ELF文件格式的复习

    在这里复习一下链接的知识: 什么是链接(linking):把源代码形成的模块独立编译后组装成一个整体的的过程叫做链接. 链接主要过程包括:地址和空间分配(address and storage all ...

  10. 《shell下sort排序命令的使用》

    首先建立一个文件,很乱,没有规律: 正排序: 倒排序: Uniq 删除文件中的重复行:用此命令要先对文件进行排序. 对文件冗余,只要文件所有重复的字符显示一次: 显示1-7,不重复的行: 只显示1-7 ...