![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
莫比乌斯反演
fyc_kabuto
一个蒟蒻程序员
展开
-
bzoj 3930: [CQOI2015]选数
题意:在[L,H]中选n个可重复,有序的数,使这些数的gcd=k。题解:1A了很爽。 莫比乌斯反演+杜教筛。 先转化题意,设lk=⌊l−1k⌋+1 rk=⌊rk⌋lk=\lfloor\frac{l-1}{k}\rfloor+1\ \ \ rk=\lfloor\frac{r}{k}\rfloor 相当于在[lk,rk]中选n个互质的数。 即ans=∑a1lk rk∑a2lk rk……∑a1原创 2017-08-18 09:38:04 · 347 阅读 · 0 评论 -
4815: [Cqoi2017]小Q的表格
题意:对于n*n的数表,任意一个位置,需要满足:f(a,b)=f(b,a)f(a,b)=f(b,a)f(a,b)=f(b,a)b×f(a,a+b)=(a+b)∗f(a,b)b×f(a,a+b)=(a+b)*f(a,b)b×f(a,a+b)=(a+b)∗f(a,b)每次修改一个位置,需要将相关位置全部修改且求前k行前k列的和。题解:将二式变化可得:f(a,a+b)a(a+b)=f(a,...原创 2019-01-03 11:09:43 · 133 阅读 · 0 评论 -
4815: [Cqoi2017]小Q的表格
题意:对于n*n的数表,任意一个位置,需要满足:f(a,b)=f(b,a)f(a,b)=f(b,a)f(a,b)=f(b,a)b×f(a,a+b)=(a+b)∗f(a,b)b×f(a,a+b)=(a+b)*f(a,b)b×f(a,a+b)=(a+b)∗f(a,b)每次修改一个位置,需要将相关位置全部修改且求前k行前k列的和。题解:将二式变化可得:f(a,a+b)a(a+b)=f(a,...原创 2019-01-03 11:09:43 · 162 阅读 · 0 评论 -
bzoj 4833: [Lydsy1704月赛]最小公倍佩尔数
前言:好久没写blog,补补坑。题意:设f(i)=2∗f(i−1)+f(i−2),f(0)=0,f(1)=1f(i)=2∗f(i−1)+f(i−2),f(0)=0,f(1)=1f(i)=2*f(i-1)+f(i-2),f(0)=0,f(1)=1 g(n)=lcm(f(i)i<=n)g(n)=lcm(f(i)i<=n)g(n)=lcm(f(i)_{i∑nig(i)∗i∑in...原创 2018-04-05 11:54:13 · 358 阅读 · 0 评论 -
51nod 2026 Gcd and Lcm
题意:设:f(n)=∑d|nμ(d)∗df(n)=\sum_{d|n}\mu(d)*d 求 ∑in∑jnf(lcm(i,j))∗f(gcd(i,j))\sum_i^n\sum_j^nf(lcm(i,j))*f(gcd(i,j))题解:假如直接推柿子不太可做,要化简。 显然ff是个积性函数 f(lcm(i,j))∗f(gcd(i,j))=f(i)∗f(j)f(lcm(i,j))*f(gcd(i原创 2018-01-10 15:18:17 · 240 阅读 · 0 评论 -
bzoj 4659: Lcm&2694
题意:给出A,B,考虑所有满足l<=a<=A,l<=b<=B,且不存在n>1使得n^2同时整除a和b的有序数对(a,b),求其lcm(a,b)之和。题解:一开始想了个容斥做法,就是bzoj 2440+bzoj 2693 成功卡过了4659,2694T了。 膜题解,发现不用容斥,预处理枚举μ\mu不为0的值就能过了,要写自然溢出,不然很慢。 题解 code(TLE):#include<cstd原创 2018-01-09 15:37:32 · 430 阅读 · 0 评论 -
bzoj 4176: Lucas的数论
反演原创 2018-01-08 12:02:38 · 249 阅读 · 0 评论 -
bzoj 2693: jzptab
莫比乌斯反演原创 2018-01-07 21:26:41 · 221 阅读 · 0 评论 -
莫比乌斯反演复习计划
公式和证明过了那么就居然还能证出来真是感动。 ∑d|nμ(d)=0(n!=1)\sum_{d|n}\mu(d)=0(n!=1) 这个挺好理解就不赘述了。 设: F(n)=∑d|nf(n)F(n)=\sum_{d|n}f(n) 则: ∑d|nμ(d)F(nd)=∑d|nμ(d)∑e|ndf(e)=∑e|nf(e)∑d|neμ(d)=f(n)\sum_{d|n}\mu(d)F(\fra原创 2018-01-07 16:41:11 · 249 阅读 · 0 评论 -
51nod 1220 约数之和
题意:求: ∑in∑jnd(ij)\sum_i^n\sum_j^nd(ij)题解:首先有这个东西:nmnm的因子是∑p|n∑q|mnpq[(p,q)=1]\sum_{p|n}\sum_{q|m}\frac npq[(p,q)=1] 所以要求 ∑in∑jn∑p|i∑q|jnpq[(p,q)=1]\sum_i^n\sum_j^n\sum_{p|i}\sum_{q|j}\frac原创 2018-01-11 16:05:58 · 301 阅读 · 0 评论 -
51nod 1223 分数等式的数量
题意:有这样一个分数等式:1/X + 1/Y = 1/N,(X,Y,N > 0)。给出L,求有多少满足X < Y <= L的等式。题解:题目就是要求多少对(a,b)(a,b)满足(a+b)|ab(a+b)|ab 设(a,b)=d(a,b)=d,则a1+b1|a1b1da_1+b_1|a_1b_1d 易证gcd(a1+b1,a1b1)=1gcd(a_1+b_1,a_1b_1)=1 即a1+b1|原创 2018-01-11 08:30:49 · 218 阅读 · 0 评论 -
bzoj 1101: [POI2007]Zap
sb反演题原创 2017-12-02 09:47:09 · 182 阅读 · 0 评论 -
bzoj 3994: [SDOI2015]约数个数和
题意:求∑ni∑mjd(ij)\sum_{n}^i \sum_{m}^j d(ij)d(n)为n的约数个数。题解:首先要知道一个结论: d(nm)=∑i|ni∑j|nj[gcd(i,j)=1]d(nm)=\sum_{i|n}^i\sum_{j|n}^j[gcd(i,j)=1] 那么这个东西怎么证明呢 首先假设质数p在n中指数为k1,m中k2。 根据d函数的求法d(n)=原创 2017-08-11 11:14:11 · 396 阅读 · 0 评论 -
bzoj 4407: 于神之怒加强版
题意:求∑ni∑mjgcd(i,j)k mod 109+7\sum_{n}^i\sum_{m}^jgcd(i,j)^k\ mod\ 10^9+7题解:先上经典的莫比乌斯反演变形得到:∑min(n,m)d=1dk∑min(⌊nd⌋,⌊md⌋)p=1μ(p)⌊ndp⌋⌊mdp⌋\sum_{min(n,m)}^{d=1}d^k\sum_{min(\lfloor\frac{n}{d}\rfloor,\lf原创 2017-08-18 11:48:26 · 245 阅读 · 0 评论 -
3309: DZY Loves Math
全程%popoqqq:题解 orz:求g[i]函数(太神了) 现在我们只需要知道Σ[d|T]f(d)μ(T/d)的前缀和就行了 设这个函数为g(x) 观察这个函数 由于含平方因子数的μ值都为零,因此我们只考虑μ(T/d)!=0的数 令T=p1^a1*p2^a2*…pk^ak,d=p1^b1*p2^b2…*pk^bk 那么0<=(ai-bi)<=1 如果存在ai≠aj(i≠j),那么我们可原创 2017-08-09 14:57:51 · 268 阅读 · 0 评论 -
bzoj 3529: [Sdoi2014]数表
orz:popoqqq此题比较强(起码我这个蒟蒻觉得) 主要是那个<=a的限制很烦。 经过测试,暴力求约数和函数是非常快的,于是可以离线+树状数组暴力维护前缀和做。 code:#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<cmath>#include<algorithm>us原创 2017-08-10 11:44:40 · 246 阅读 · 0 评论 -
2671: Calc
题意:问多少对a,ba,ba,b满足1≤a&lt;b≤n1 \le a &lt; b \le n1≤a<b≤n且(a+b)∣ab(a+b)|ab(a+b)∣ab题解:先考虑什么情况满足a+b∣aba+b|aba+b∣ab设d=gcd(a,b)d=gcd(a,b)d=gcd(a,b),则a′d+b′d∣a′b′d2−&gt;a′+b′∣a′b′da&#x...原创 2019-01-15 08:58:41 · 190 阅读 · 0 评论