P12147 【MX-X11-T1】「蓬莱人形 Round 1」仅此而已,就已经足够了

题目背景

原题链接:。 --- $$\text{もうさ強がらなくてもいいんだよ}$$ $$\text{過去の夜の涙ひとつ}$$ $$\text{それを柔く持って歩いて征く}$$ $$\text{それだけで今はいいんだよ}$$

题目描述

定义 $f(x)=x\oplus (x+2^k)$,其中 $\oplus$ 是二进制下的异或运算。 给定两个整数 $n,k$。 请你输出 $f(0)+f(1)+f(2)+\cdots+f(n)$ 的值。 有关异或运算的知识,您可以在 [OI Wiki 相关界面](https://oi-wiki.org/math/bit/)查询到。

输入格式

输出格式

说明/提示

**【样例解释 #1】** 对于第一组样例,$f(0) = 0 \oplus (0+2^0) = 1,f(1) = 1 \oplus (1+2^0) = 3,f(2) = 2 \oplus (2+2^0) = 1,f(3) = 3 \oplus (3+2^0) = 7$,因此答案为 $1+3+1+7=12$。 **【数据范围】** 对于 $20\%$ 数据,$n,T \leq 5000$。 对于另外 $20\%$ 数据,$n \leq 10^5$。 对于另外 $30\%$ 数据,$k = 0$。 对于 $100\%$ 数据,$1\le T \leq 10^5$,$0\le n < 2^{29}$,$0\le k \leq 29$。