• 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)

  • 相关阅读:
    spring
    SpringMVC 配置与使用
    基本MVC2模式创建新闻网站
    EL表达式
    JavaBeans介绍
    JSP简介
    Cookie与Session的异同
    过滤器的使用
    session的使用
    最长回文子串
  • 原文地址:https://www.cnblogs.com/Patt/p/9155928.html
Copyright © 2020-2023  润新知