
数论之Mobius莫比乌斯反演
Conchpeng
贵在坚持。如有错误欢迎指正。
展开
-
GCD HDU - 1695 [3种做法]
GCD HDU - 1695题意:求[1,n],[1,m]中,GCD(i,j)==k的方案数思路:有三种做法1.等价求GCD(i,j)==1在区间[1,n/k],[1,m/k]的方案数O(q*n) 62ms2.在1的基础上,分块 O(q*sqrt(n)); 15ms3.直接根据Mobius函数 令n=k ,用类似筛法的性质去做,复杂度O(q*n/k) 7...原创 2018-10-02 15:07:15 · 358 阅读 · 0 评论 -
TrickGCD HDU - 6053 [Mobius]
TrickGCD HDU - 6053 题意:求存在多少个数组b,使得b[i]>=a[i] && gcd(b[1]...b[n])>=2思路:求出所有gcd是1倍数的方案数x 求出所有gcd是1的方案数y ans=x-y 经过系列化简,得到 明显的Mobius但是常规做法是O*(n^2), 第二个等号后面的式子,我们可以在 O(n*sqrt(n)...原创 2018-10-03 15:13:52 · 258 阅读 · 0 评论 -
Code HDU - 5212[Mobius]
Code HDU - 5212 题意:给定长为n的数组A, a[i]<=1e4 思路:有如下定义f(n)为gcd==n的对数F(n)为gcd是n倍数的对数 Accepted 5212 124MS 1624K 1483B G++ #include<bits/stdc++.h>using namesp...原创 2018-10-04 14:20:13 · 294 阅读 · 0 评论 -
GuGuFishtion HDU - 6390 [Mobius]
GuGuFishtion HDU - 6390思路:从原式到第一个等式,神奇操作....... 当作结论用. 爆int了.难受当然可以再优化复杂度到#include<bits/stdc++.h>using namespace std;typedef long long ll;const ll N=1e6+6;ll MOD=1e9+7;ll inv[N]...原创 2018-10-05 15:54:37 · 220 阅读 · 0 评论 -
Mophues HDU - 4746 [Mobius]
Mophues HDU - 4746 题意:[1,n] 和 [1,m]中有多少对数的GCD k,k的素因子个数小于等于p思路:我们先解决[1,n],[1,m]有多少对数的GCD为k分析到这一步,复杂度为 q * n, 不能接受,考虑到在连续的k内(n/k) (m/k)是有重复部分的,可以用分块解决最后质因数个数P的限制,只要在sum(k)多加一维就可以了最终复杂度为...原创 2018-10-06 16:58:53 · 301 阅读 · 0 评论 -
[HAOI2011]Problem b [Mobius]
题意:对于给出的n个询问,每次求有多少个数对(x,y),满足a≤x≤b,c≤y≤d,且gcd(x,y) = k,gcd(x,y)函数为x和y的最大公约数。100%的数据满足:1≤n≤50000,1≤a≤b≤50000,1≤c≤d≤50000,1≤k≤50000思路:是之前做的求(1,n),(1,m)求gcd==k 这题的扩展版本,加个容斥其中(1,a),(1,b)求gcd==k...原创 2018-10-08 17:10:26 · 315 阅读 · 0 评论