2023.3.8 闲话

膜拜国际特级大师 SMTwy
膜拜国际特级大师 SMTwy
膜拜国际特级大师 SMTwy
膜拜国际特级大师 SMTwy
膜拜国际特级大师 SMTwy

推歌:ダーリン (Darling) - MARETU .


约定素数集为 Ppi 为第 i 个素数 .

基本定义

定义偏序集 (R1,1)(R2,2) 的直积(direct product)(R,)=(R1,1)×(R2,2) 满足

R=R1×R2(x,y)(x,y)(x1x)(y2y)

考虑偏序集 (Z+,)(整除),根据唯一分解定理,它可以被分解为若干个线性序(或者叫全序)的直积 .

对于第 i 个素数 pi,定义 Li={pixxN},那么「整除偏序集」就可以表示为

(Z+,)=i1(Li,)

熟知 Mo"bius 函数 μ 在线性序 (R,) 上的表现:

μ(x,y)={1x=y1x+1=y0otherwise.(where xy)

其中 x=yxyyxx+1=y(zx,y:z<xy<z) .

根据定义可以得知,偏序集直积后,δ,ζ,μ 的表现均为乘积 .

那么展开 Mo"bius 函数关于线性序直积的观察,可以得到

μ(x,y)=i1μLi(x,y)=i1{1ei=fi1ei+1=fi0otherwise.={0y/x is square-free number.(1)ω(y/x)otherwise.(where xy)

其中 x=i1piei,y=i1pifix,y 的唯一分解,ω(n)n 的不同素因子数量 .

这其实已经导出了我们熟知的 Mo"bius 函数,根据上式可知,μ(x,y)=μ(1,yx),那么令 μ(x)=μ(1,x),使用 Mo"bius 反演,可以得到

f(n)=dng(d)g(n)=d|nμ(nd)f(d)

这就是 OI 中常见的 Mo"bius 反演 .

以上内容的探讨已经广为人知,下面来讨论它的一个应用 .

春季测试 2023 幂次

[1,n] 中,有多少整数 x 能表示为 x=ab 的形式,其中 a1,bk .

1n10181k100 .

首先特判 k=1,那么问题变为 k=2 的答案 . 令 f(n) 表示 [1,n] 能表示为 x=ab 形式的整数 x 个数,其中 a1,b2,那么答案可以简单表述为

f(n)i=2k1f(ni)

于是只需要快速计算 f .

发现一个数可能被多次计算,自然考虑容斥,观察到 abx=(ab)x,那么对指数容斥即可 .

偏序集的容斥或许就是对于每个「前缀」的集合做朴素容斥原理(「前缀」大概就是 {yy<x} 吧),于是令 S={xμ(x)0} 即 square-free number 集,在 (S,) 上容斥,不在 S 内的数不产生贡献 .

考虑把 (S,) 拆解为线性序的直积,根据直觉,考虑设计线性序的容斥系数然后乘起来得到 (S,) 的容斥系数 .

然而线性序的容斥系数是显然的,对于元素 x,如果恰有 zy 满足 y<x,那么容斥系数 I(x)=(1)y(直接考虑对于每个「前缀」的集合做朴素容斥原理).

那么答案的容斥系数就是

I(x)=i1ILi(i)=i1(1)ei=(1)ω(x)

(负号是为了算上本身的贡献)

其中 x=i1pieix 的唯一分解 .

结合一下即可得到总的容斥系数就是 I(x)=[xS](1)ω(x)=μ(x) .

这样就能算出答案了,复杂度是 Θ(klogn) .

好像 GCD Matrices 的问题也能用相关做法解决,不过我没详细了解了 .


我也不知道我在写啥,要是看不懂大概是我写挂了可以评论区发一下 .

这个设计好像在 N+ 更自然一点,S 上有点硬凑的感觉了 .

posted @   yspm  阅读(93)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
😅​
点击右上角即可分享
微信分享提示