hihoCoder #1758 加减

$DeclareMathOperator{lowbit}{lowbit}$

题目大意

对于一个数 $x$,设它最低位的 1 是第 $i$ 位,则 $lowbit(x)=2i$ 。

例如 $lowbit(5)=1$,$lowbit(12)=4$ 。

定义对 $x$的一次变换为:有 50% 的概率变成 $x+lowbit(x)$,有 50% 的概率变成 $x-lowbit(x)$ 。

定义 $f(x)$ 为对 $x$ 不停变换,变换到 0 的期望变换次数。

给定 $L, R$($0le L le R < 2^{31}$),求 $sumlimits_{x=L}^{R} f(x)$ 。

答案对 $998244353$ 取模。

分析

题解是 DP,但是我没看懂。我想到的一种记忆化(memoization)递归求解的方法,能 AC,但是我搞不清楚这种方法的复杂度。


[ S(n) = sum_{i=0}^{n} = f(i) ]

则我们有

[
egin{aligned}
f(0) &= S(0) = 0 \
f(1) &= S(1) = 2 \
S(2n) &= S(n) + n + frac{S(n) + S(n-1)}{2} \
S(2n+1) &= S(n) + n+1 + frac{S(n+1) + S(n)}{2}
end{aligned}
]

根据 $S(n)$ 的递推式,是否可以猜测 $S(n)$ 关于 $n$ 是线性增长的呢?

这个问题是很值得研究的。

记忆化递归(recursion with memoization)

原文地址:https://www.cnblogs.com/Patt/p/9155928.html