P7122 Chino 与线段树

题目描述

Chino 刚学习了一种叫做线段树的数据结构。可是她在写线段树时遇到了一个问题:她不知道该使用多大的空间,只知道线段树的叶子结点个数 $n$ 为一个在范围 $[a,b]$ 之内的正整数。 Chino 设 $f(n)$ 表示一棵 $n$ 个叶子结点的线段树所占的最大数组下标。她觉得如果她知道了 $$\sum_{n=a}^{b}f(n)$$ 那么她就能够算出她需要多少使用多大的空间。所以她来请教聪明的你来帮帮她。 具体地,Chino 构建线段树的伪代码如下: $\begin{aligned} &\underline{\kern{300pt}}\\ &\mathbf{Function:}\ \text{Build a Segment Tree.}\\[-10pt] &\underline{\kern{300pt}}\\[-5pt] &\begin{array}{r|l} 1&\ \mathbf{function}\ \text{BuildSegmentTree}(x,l,r):\\ 2&\qquad \mathbf{if}\ (l \ne r)\ \mathbf{then}:\\ 3&\qquad\qquad m \gets \left\lfloor (l+r)/2 \right\rfloor\\ 4&\qquad\qquad \text{BuildSegmentTree}(2x,l,m)\\ 5&\qquad\qquad \text{BuildSegmentTree}(2x+1,m+1,r)\\ 6&\qquad \mathbf{end\ if}\\ 7&\ \mathbf{end\ function}\\ \end{array}\\[-13pt] &\underline{\kern{300pt}} \end{aligned}$ 线段树所占的最大数组下标即为在 $\def\t#1{\text{#1}}\t{BuildSegmentTree}\left(1,1,n\right)$ 后所有调用的 $\def\t#1{\text{#1}}\t{BuildSegmentTree}$ 中参数 $x$ 的最大值。

输入格式

输入共二行。 第一行为一个正整数 $a$;第二行为一个正整数 $b$。其意义如题面所述。

输出格式

输出一行一个正整数,表示你的答案。

说明/提示

### 样例解释 #1 $1\sim 10$ 个叶子结点的线段树的最大下标分别为 $1,3,5,7,9,13,13,15,17,25$,求和得到 $108$。 ### 测试点约束 **本题采用捆绑测试。** 对于全部数据,有 $1\le a\le b\le10^{10^6}$。 每个子任务的具体限制见下表: | 子任务编号 | 分值 | $b\le$ | $a=b$ | |:-:|:-:|:-:|:-:| | 1 | 10 | $10^{10^0}$ | $\times$ | | 2 | 10 | $10^{10^1}$ | $\times$ | | 3 | 10 | $10^{10^2}$ | $\times$ | | 4 | 10 | $10^{10^3}$ | $\surd$ | | 5 | 10 | $10^{10^3}$ | $\times$ | | 6 | 10 | $10^{10^4}$ | $\surd$ | | 7 | 10 | $10^{10^4}$ | $\times$ | | 8 | 10 | $10^{10^5}$ | $\surd$ | | 9 | 10 | $10^{10^5}$ | $\times$ | | 10 | 10 | $10^{10^6}$ | $\times$ |