专栏文章

题解:AT_arc135_f [ARC135F] Delete 1, 4, 7, ...

AT_arc135_f题解参与者 1已保存评论 0

文章操作

快速查看文章及其快照的属性,并进行相关操作。

当前评论
0 条
当前快照
1 份
快照标识符
@minyp220
此快照首次捕获于
2025/12/02 10:31
3 个月前
此快照最后确认于
2025/12/02 10:31
3 个月前
查看原文
下标 kk 经过还原成了 f(k)=3k+12f(k) = \left\lfloor\dfrac{3k+1}{2}\right\rfloor。假设 fi(k)f^i(k) 表示将 ff 迭代 ii 次带入 kk。假设最终长度
N=2KN3N.N' = \left\lfloor \dfrac{2^K \cdot N}{3^N} \right\rfloor.
欲求
Ans(N,K)=0<iNfK(i).\mathrm{Ans}(N, K) = \sum_{0 < i \le N'} f^K(i).
xx 连续 KK 次操作后,主项为 3Kx2K\dfrac{3^K x}{2^K},误差项仅与 xmod2Kx \bmod 2^K 有关,因此假设 C:[0,2K)ZC : [0, 2^K) \to \mathbb Z,使得
fK(x)=3Kx+C(xmod2K)2K.f^K(x) = \dfrac{3^K x + C(x \bmod 2^K)}{2^K}.
因此按 2K2^K 分组后形成 d=3Kd = 3^K 的等差数列。
比如说,我们取 K=x+yK = x+y,将 fKf^K 分解为 fxfyf^x \circ f^y。那么我们可以写
Ans(N,K)=3x2x(0<iNf(i,y)0i<2xicnt(i))+0i<2xfx(i)cnt(i).\mathrm{Ans}(N,K)= \dfrac{3^x}{2^x}\left(\sum_{0 < i \le N'} f(i,y) − \sum_{0 \le i < 2^x} i \cdot \mathrm{cnt}(i) \right) + \sum_{0 \le i < 2^x} f^x(i) \cdot \mathrm{cnt}(i).
其中 cnt(i)\mathrm{cnt}(i)fy(k)mod2x=if^y(k) \bmod 2^x = i 的个数。那么我们只考虑三件事,分别对应三项。
对于
A=0<iNf(i,y)A = \sum_{0 < i \le N'} f(i,y)
一项,我们可以考虑写成 imod2yi \bmod 2^y 一项和一个误差项。这当然可以 2y2^y 扫一遍。
而考虑 ts=t0+s3yt_s = t_0 + s 3^y 这一式给出了 tsmod2xt_s \bmod 2^x 是一个等差数列,故可以直接用差分遍历 2x2^x 个循环计算 cnt\rm cnt。那么我们当然可以通过查表计算 Ans\rm Ans。时间复杂度是 O~(2K/2logN)\tilde {\operatorname{\mathrm O}}\left(2^{K/2} \log N\right)(本文中 \sim 记号还表示忽略一个 poly(K){\rm poly}(K) 的倍数)。
看起来不太能通过,但是我们还可以缝合上一个暴力,时间复杂度 O~(N(2/3)K)\tilde {\operatorname{\mathrm O}} (N \cdot {(2/3)^K})
那么平衡一下:2K/2logN=N(23)K2^{K/2} \log N = N \left(\dfrac 23\right)^K,即大致有 logNK\dfrac{\log N}{K} 约为
c=12log2log23=12log92.c = \dfrac 12 \log 2 - \log \dfrac 23 = \dfrac 12 \log \dfrac 92.
带入得时间复杂度
O~(Nα),α=log2log(9/2)0.461. \tilde {\operatorname{\mathrm O}} (N^\alpha), \alpha = \dfrac {\log 2}{\log (9/2)} \approx 0.461.
精细控制可以将复杂度内的 KKpolylog(N){\rm polylog}(N) 相关控制在 polylog(K)\mathrm{polylog}(K)poly(loglogN)\mathrm{poly}(\log \log N) 量级。

评论

0 条评论,欢迎与作者交流。

正在加载评论...