#178. 啊啊啊sb了
啊啊啊sb了
Description
最近小小T在学习位运算和快速幂,作为小T的传人,什么简单的与或非还不是简简单单,但是当他学到异或的时候却卡住了,当然并不是因为异或本身定义有什么难的,而是他碰到了一道棘手的难题。这道题是这样的:
现在有个非负整数,他们每个数的数据范围都在之间,现在你拿这个整数做异或操作既,问你有多少种组合使得整个异或的值为。
当两个组合存在对应的某对整数不同时即被认为是不同的
小小T看到这个题百思不得其解,因为直接枚举所有的组合显然是不切实际的,所以小小T想问问你有没有更好的解法。
是指将两个二进制数按位进行异或操作,对应位相同该位为,否则为,如。
Input Format
题目包含多组样例,在第一行输入一个整数 ,代表样例的个数。
对于每组样例,在一行输入三个整数 ,表示整数的个数,表示异或后等于的值,表示所有的整数的取值范围只能在。所有样例n的总和不会超过10^6
Output Format
对于每组样例在一行输出一个整数,表示组合的数量。这个值可能会非常大所以需要你对答案和1e9+7取模再输出。
3
1 1 1
2 1 1
100000 123456 24
1
2
391581455