版权声明: 本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
title: "题解 - [Luogu P5177] 签到" categories:
强烈谴责这种起无意义标题的做法
<!-- more -->求 $\sum{i=1}^n \sum{j=1}^n i \ xor \ j \in [\min(i,j),\max(i,j)]$
由于答案可能过大, 输出答案对 $10^9+7$ 取模的值
第一行, 一个整数 $T$, 为数据组数. 下面 $T$ 行, 每行一个整数 $n$
对于每行数据, 输出答案
3
10
100
1000
20
2634
325502
第一组样例解释: 符合题意的 $(i,j)$ 有 $20$ 对
i=1 j=3 i^j=2
i=1 j=5 i^j=4
i=1 j=7 i^j=6
i=1 j=9 i^j=8
i=2 j=6 i^j=4
i=2 j=7 i^j=5
i=2 j=10 i^j=8
i=3 j=1 i^j=2
i=3 j=6 i^j=5
i=3 j=7 i^j=4
i=3 j=10 i^j=9
i=5 j=1 i^j=4
i=6 j=2 i^j=4
i=6 j=3 i^j=5
i=7 j=1 i^j=6
i=7 j=2 i^j=5
i=7 j=3 i^j=4
i=9 j=1 i^j=8
i=10 j=2 i^j=8
i=10 j=3 i^j=9
对于 27%的数据, $T\le 5, n \le 1000$
对于 54%的数据, $T\le 20, n \le 5 \times 10^5$
对于 90%的数据, $T\le 10^5, n \le 10^{18}$
最后一个点, $T=3\times 10^6 \ ,\ n\le 10^{18}$
首先规范一些记号, 题目要求的是
$$ \sum{i=1}^n\sum{j=1}^n[\min{i,j}\leqslant (i\oplus j)\leqslant \max{i,j}] $$
显然, 上式等价于
$$ 2\sum{i=1}^n\sum{j=1}^{i-1}[j\leqslant (i\oplus j)\leqslant i] $$
固定 $i$, 则 $j$ 能产生贡献当且仅当 $j$ 二进制最高位为 $i$ 二进制次高位