经典结论
对于任意序列 \(\{a_m\}\) 满足 \(a_i\in \mathbb{N}\) 且 \(\sum_{i=1}^m a_i\cdot i\le m\) ,有 \(\sum_{i=1}^m\log_2(a_i+1)=O(\sqrt m)\) 。
证明:
记 \(\sum_{i=1}^m\log_2(a_i+1)\) 为 \(a\) 的权值(记为 \(f(a)\)),等价于证明权值最大的序列 \(a\) 的权值 \(\le c\sqrt m\) ,其中 \(c\) 是一个常数。
为了让权值最大,会让 \(a\) 单调递减。
\[\begin{align} &\sum_{i=1}^m\log_2(a_i+1)\le2\sum_{i=1}^m\lfloor\log_2(a_i+1)\rfloor \\\le&2\sum_{j=1}\sum_{i=1}^m[a_i\ge 2^{j}-1] \\\le&2\sum_{j=1}\sum_{i=1}^m[\frac{i(i+1)}2\times(2^{j}-1)\le m] \\\le&2\sum_{j=1}\sum_{i=1}^m[i^2\times 2^{j}\le 4m] \\\le&2\sum_{j=1}\lfloor\sqrt{\frac{4m}{2^j}}\rfloor \\\le&4\sum_{j=1}(\frac1{\sqrt 2})^j\sqrt m \end{align} \]注意到 \(\sum_{i=1}k^i\) 在 \(0<k<1\) 时是收敛的,所以原式 \(\le c\sqrt m\) 。
证毕。
                    
                
                
            
        
浙公网安备 33010602011771号