P9821 [ICPC 2020 Shanghai R] Sum of Log

题目描述

给定两个非负整数 $X$ 和 $Y$,计算以下值: $$ \sum_{i=0}^{X}\sum_{j=[i=0]}^{Y}[i\&j=0]\lfloor\log_2(i+j)+1\rfloor $$ 对 $10^9+7$ 取模,其中 - $\&$ 表示按位与运算; - $[A]$ 的值为 1 如果 $A$ 为真,否则为 0; - $\lfloor x\rfloor$ 表示不大于 $x$ 的最大整数。

输入格式

第一行包含一个整数 $T\,(1\le T \le 10^5)$,表示测试用例的数量。 接下来的 $T$ 行中,每行包含两个整数 $X, Y\,(0\le X,Y \le 10^9)$,表示一个测试用例。

输出格式

对于每个测试用例,输出一行一个整数,表示该测试用例的答案。

说明/提示

对于第一个测试用例: - 两个 $(i,j)$ 对使得和增加 1:$(0, 1), (1, 0)$ - 六个 $(i,j)$ 对使得和增加 2:$(0, 2), (0, 3), (1, 2), (2, 0), (2, 1), (3, 0)$ 所以答案是 $1\times 2 + 2\times 6 = 14$。 题面翻译由 ChatGPT-4o 提供。