2024.7 #3 我从不怕摔倒 拼命向前跑 把每一天过好 和大家拥抱

我从不怕摔倒
拼命向前跑
把每一天过好
和大家拥抱----乐正绫《万圣街》


T1. P5572 [CmdOI2019] 简单的数论题

和毒瘤之神的考验类似的毒瘤题。

首先先化简原式:

i=1nj=1mφ(lcm(i,j)gcd(i,j))=i=1nj=1mφ(i×jgcd(i,j)2)=d=1ni=1nj=1mφ(i×jd2)[gcd(i,j)==d]=d=1ni=1ndj=1mdφ(i×j)[gcd(i,j)==1]=d=1ni=1ndj=1mdφ(i)×φ(j)[gcd(i,j)==1]=d=1ni=1ndj=1mdφ(i)×φ(j)pgcd(i,j)μ(p)=d=1np=1ndμ(p)i=1ndj=1mdμ(i)μ(j)[pi][pj]=d=1np=1dnμ(p)i=1npdφ(ip)j=1mpdφ(jp)=T=1np|Tμ(p)i=1nTμ(ip)j=1mTφ(jp)

然后我们设 G(x,y)=i=1xφ(iy)。那么原式子就变为 T=1np|Tμ(p)G(nT,p)G(mT,p)

然后我们定义 H(x,y,z)=T=1zp|Tμ(p)G(x,p)G(y,p)

接着我们就可以用毒瘤之神的考验的套路了。用根号分支来求 H,具体的我们设置一个阈值 B,将所有 BH 都提前预处理出来,然后对于 B 的部分,我们可以在查询时利用整除分块计算。


T2. P3911 最小公倍数之和

又是推式子题,好欸好欸好欸!虽然说大多数步骤都是类似的,但是还是有许多细节。

首先问们定义 ci 表示 i 的出现次数,n 为最大值。那么就有:

i=1nj=1mci×cj×lcm(i,j)=i=1nj=1mci×cj×i×jgcd(i,j)=i=1ki=1nj=1mci×cj×i×jk[gcd(i,j)==k]=i=1ki=1nkj=1mkcik×cjk×i×j×k[gcd(i,j)==1]=i=1ki=1nkj=1mkdgcd(i,j)μ(d)cik×cjk×i×j×k=i=1kkd=1nμ(d)×d2i=1nkdj=1mkdcikd×cjkd×i×j×k=T=1nT(d|Tμ(d)×d)i=1nTj=1mTciT×cjT×i×j=T=1nT(d|Tμ(d)×d)(i=1nTciT×i)2

然后第一个预处理,后面的暴力算即可。


T3. CF911G Mass Change Queries

我们发现 ai100,所以我们可以建出 100 棵线段树,然后我们只需要维护这些线段树即可。我们把所有 ai=xi 放到第 x 个线段树上。

然后我们考虑怎么维护更改操作。其实就是把 x 线段树上在 [l,r] 之间的点合并到 y 上,这样子对于所有在 [l,r] 的点并且 ai=xi 就全部移到了 y 线段树上。

posted @   sqrtqwq  阅读(5)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现
· 25岁的心里话
点击右上角即可分享
微信分享提示