← Home
write a go solution for Description:
Moamen and Ezzat are playing a game. They create an array a of n non-negative integers where every element is less than 2^k.

Moamen wins if a_1,&,a_2,&,a_3,&,ldots,&,a_n>=a_1oplusa_2oplusa_3oplusldotsoplusa_n.

Here & denotes the bitwise AND operation, and oplus denotes the bitwise XOR operation.

Please calculate the number of winning for Moamen arrays a.

As the result may be very large, print the value modulo 1,000,000,007 (10^9+7).

Input Format:
The first line contains a single integer t (1<=t<=5)— the number of test cases.

Each test case consists of one line containing two integers n and k (1<=n<=2*10^5, 0<=k<=2*10^5).

Output Format:
For each test case, print a single value — the number of different arrays that Moamen wins with.

Print the result modulo 1,000,000,007 (10^9+7).

Note:
In the first example, n=3, k=1. As a result, all the possible arrays are [0,0,0], [0,0,1], [0,1,0], [1,0,0], [1,1,0], [0,1,1], [1,0,1], and [1,1,1].

Moamen wins in only 5 of them: [0,0,0], [1,1,0], [0,1,1], [1,0,1], and [1,1,1].. Output only the code with no comments, explanation, or additional text.