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$。