为啥就我这么弱

娘的,又垫底了。一道题不会做,直接没交。——赛后交了下赛时的代码,零分。

yspm 都知道我卖弱了。我也不想的,但是我除了弱一无所有了。


T1 的二维偏序,我没看出来。就个裸的 [la,br],我愣是认不出来。

T2 对时间轴分治(线段树分治似乎可行),我没看出来。写了个 log3 做法,因为写之前复杂度算错了。然后还没调过样例。

小指上的伤口也不见好转。至少这周要好吧。别再拖了。疼。刺痛。

所以这里到底是闲话还是题解。是咒骂吧。我倒挺希望能够在这里写点脏话的。


yspmzero4388 是我仅剩的一点现实的乐趣了。

昨天打使命召唤,闪退了,存盘点没了。真倒霉。

但是近 30 天不知道发生了多少倒霉事情。都不是很吃惊了的说。


T3 数学题:从 [0,nm) 中选若干数,余数为 x 的方案数记为 fx,求 fx2n,m1018

crashed 仗着自己强,就开始天马行空讲些不得了的东西,我代表数学矮子强烈谴责这种行为。其实是 DYM 的接班人

下面是抄的题解做法。但是复杂度中的符号看不懂,所以不清楚最后一步咋处理的。😢

F(x)=[j=0n1(1+xj)]mmod(xn1)

DFT 得到

f^u=[j=0n1(1+ωuj)]m

于是有

fk=n1u=0n1f^uωuk=n1u=0n1ωuk[j=0n1(1+ωuj)]m

d=gcd(u,n),由因式定理即得

j=0n1(1+ωuj)=[j=0nd1(1+ωn/dj)]d=((1)n/d1)d

gcd(n,u)=dωuk=pndμ(p)dpuωuk

代回原式得

fk=n1dn((1)n/d1)dmpnd[ndpk]μ(p)ndp

注意到 k 只出现在 [ndpk] 中,且显然实际有用部分是 gcd(k,n) 。因此 gcd(k,n) 相等时,fk 就相等。因此只需对所有 n 的因子 k 计算。

简记 vd=((1)n/d1)dm,则上式即

fk=n1dpw=n[wk]vdμ(p)w

由于 w[wk]wμ 是积性函数,研究其贝尔级数,发现只有 +1,1 两项。因此可以 O(d(n)) 枚举每个 vd 的贡献,要求 k 在某些质数上的指数固定。

这样我们至少得到个 O(d(n)logn) 的做法。不清楚能不能过。

还有种聪明的做法即利用 fk=fnk 的特点,转化为求解 [x0]F(x)2mod(xn1) 。这样就只需要算 f^,最后提取单点 f,可以做到 O(d(n))

Comment. 其中 d(n) 表示 n 的约数个数。据称d(n)=O(n1.066lnlnn) 作估算是比较准确的。

posted @   OneInDark  阅读(292)  评论(3编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 一文读懂知识蒸馏
· 终于写完轮子一部分:tcp代理 了,记录一下
点击右上角即可分享
微信分享提示