
莫比乌斯反演
BrooksBUAA
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
[BZOJ 2818]Gcd:莫比乌斯反演
点击这里查看原题先跑一遍线性素数筛,然后枚举每个小于n的素数,求gcd(x,y)为素数的对数即为求gcd(x/prime[i],y/prime[i])=1的对数,因此对于用n去除得到的每个素数。 剩下的部分类似于HDU 2841/* User:Small Language:C++ Problem No.:2818 */ #include<bits/stdc++.h> #define ll long原创 2017-04-15 08:29:37 · 766 阅读 · 0 评论 -
[BZOJ 2820]YY的GCD:莫比乌斯反演
点击这里查看原题推导很强,建议看这里我最初主要是没看懂线性筛求g[i]的部分,在这里补充下: g[i * prime[j]]中如果prime[j] | i,那么i * prime[j]/pp(pp为素数)只有两种情况: pp==prime[j],那么g[i * prime[j]]+=mu[i]; pp!=prime[j],那么i * prime[j]/pp一定是prime[j]^2的倍数,根据莫比原创 2017-05-28 17:20:20 · 748 阅读 · 0 评论 -
[BZOJ 1101][POI2007]Zap:莫比乌斯反演
点击这里查看原题设,即f(n)表示的对数; 设,即g(n)表示的对数于是可得 经过莫比乌斯反演可得 将a,b分别除d,得到a’,b’,问题转化为求g(1)的值(下文的d不等于题中的d) 因为d在一定范围内,的值是不变的,所以对求个前缀和,然后分块去做/* User:Small Language:C++ Problem No.:1101 */ #include<bits/stdc++.h>原创 2017-06-01 09:31:28 · 385 阅读 · 0 评论 -
[BZOJ 2154]Crash的数字表格:莫比乌斯反演
点击这里查看原题太强了……还是看PoPoQQQ的题解吧 于是进行两次分块,求F(x,y)为sqrt(n),求ans也为sqrt(n),总复杂度O(n)/* User:Small Language:C++ Problem No.:2154 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using names原创 2017-06-01 11:43:42 · 386 阅读 · 0 评论 -
[BZOJ 2693]jzptab:莫比乌斯反演
点击这里查看原题和BZOJ 2154类似,但是是多组数据,需要转化 http://blog.youkuaiyun.com/PoPoQQQ/article/details/42078725(注意取模的问题,我因为输出答案时没有+mod%mod而WA了一次)/* User:Small Language:C++ Problem No.:2693 */ #include<bits/stdc++.h> #define原创 2017-06-01 17:23:47 · 452 阅读 · 0 评论 -
[BZOJ 2301][HAOI2011]Problem b:莫比乌斯反演+容斥
点击这里查看原题类似于BZOJ 1101,不过要多套个容斥 注意,a和c要先-1再/k(我因为先/k后-1 WA了一次)/* User:Small Language:C++ Problem No.:1101 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace std; const原创 2017-06-02 09:41:45 · 361 阅读 · 0 评论 -
[BZOJ 4804]欧拉心算:莫比乌斯反演
点击这里查看原题经过一系列反演,得到 (看不懂的建议先去做BZOJ 2820) 于是接下来就是要对求前缀和,这个需要分类讨论,具体看代码/* User:Small Language:C++ Problem No.:4804 */ #include<bits/stdc++.h> #define ll long long #define inf 999999999 using namespace s原创 2017-06-02 09:56:12 · 720 阅读 · 0 评论