2023.9.23 闲话

金银花露

以上是 H1 测试。

int_R 那个梦的 idea 感觉还挺趣味的。

CSP 初赛终于过了,很好。

推歌:ずんだパーリナイ - なみぐる feat. ずんだもん .


又看了一眼某个题,Abel 变换还是很强的 .

求:

\[\sum_{i=1}^ni^k\operatorname{ctz}(i) \]

其中 \(\operatorname{ctz}(i)\)\(i\) 二进制中末尾 0 的数量 .

被 APJ 直接秒了,呃呃 .

Solution

直接做是没有什么前途的,最好是先拆位:

\[\sum_{i=0}^{2^n-1}i^k\cdot\operatorname{ctz}(i)=\sum_{j=0}^{n-1}j\cdot 2^{jk}\sum_{i=1}^{2^{n-j-1}}i^k \]

这就是自然数幂和了,直接处理即可 .

大概是 \(\Theta(k\log k+\log n\log^2\log n)\) 的 .

一些想法

\[\begin{aligned}\sum_{i=1}^ni^k\operatorname{ctz}(i)&=\sum_{i=1}^n(n-(n-i^k))\operatorname{ctz}(i)\\&=\sum_{i=1}^nn\operatorname{ctz}(i)-\sum_{i=1}^n\sum_{j=1}^ij^{k-1}\operatorname{ctz}(j)\end{aligned} \]

\(S_k(n)\) 是答案,那么有递推:

\[S_k(n)=n(n-\operatorname{popcount}(n))-\sum_{i=1}^nS_{k-1}(i) \]

\(S_r(n)\) 的 OGF 为 \(\displaystyle F_r(z)=\sum_{k\ge 0}S_r(k)\cdot z^k\),那么可以刻画:

\[F_r(z)=\dfrac{F_{r-1}(z)}{z-1}+G(z) \]

其中 \(\displaystyle G(z)=\sum_{k\ge 0}k(k-\operatorname{popcount}(k))z^k\) .

展开就是:

\[F_r(z)=\dfrac{F_0(z)}{(z-1)^r}+G(z)\sum_{i=0}^{r-1}\left(\dfrac1{z-1}\right)^i=\dfrac{F_0(z)}{(z-1)^r}+G(z)\dfrac{(z-1)^r-1}{(1-z)^{r-1}(2-z)} \]

如上未知函数都可以由 \(\displaystyle P(z)=\sum_{k\ge 0}\operatorname{popcount}(k)z^k\) 表示,而 \(P\) 有表达:\(P(z)=P(z^2)+\frac{z}{1-z^2}\),或许可以和 Bostan-Mori 算法同步进行以远处求值(大概率不能,胡的,没细想),不过肯定跑得没有前一个算法快 .

APJ 太强了 .

可以看一些别的,比如 \(\displaystyle\sum_{i=1}^n\operatorname{ctz}(i)^k\) 以及相关内容,做法应该差不多 .

posted @ 2023-09-23 06:31  Jijidawang  阅读(81)  评论(2编辑  收藏  举报
😅​