横看成岭侧成峰

有人做了 1h 的 div1A,怎么回事呢?

$hibit(i)$ 表示 $i$ 中最高位 $1$ 的位置,其中 $hibit(0)=-1$,考虑求

$$ \sum_{i=1}^{2^n-1} n-hibit(i)-1 $$

0000
0001
0010
0011
0100
0101
0110
0111
1xxx
...

考虑开头有 $i$ 个 $0$ 的行数,其实就等于 $(\sum_{i=0}^{c-1}i\times 2^{c-i-1})+c$,忘记了差比数列求和公式可以现场推,推到一半推烦了不想推了可以写个转头打开电脑写个快速幂分治或者矩阵快速幂算类等比数列求和。

好了我做完了吗?

脑子出啥问题了才会横着看这个东西……

竖着看,每列的开头的仍然为 $0$ 的数的个数是 $2^{c-1},2^{c-2},\dots ,1$ 所以和等于 $2^{c}-1$。

别像看傻子一样看我。

posted @ 2023-12-10 11:55  寂静的海底  阅读(12)  评论(0)    收藏  举报  来源