“bitwise AND”即“按位与”运算,属于二进制运算的一种,意为数学中的且运算,所以明显这道题得从二进制数思维来做。题意即为在每个数组元素化为二进制数后存在0,而又要使和最大,所以每个数只有一个0即可,答案就是n^k。(记得取模)
#include<bits/stdc++.h>
using namespace std;
int m=1e9+7;
int main()
{
int t;
cin>>t;
while(t--)
{
long long int n,k,sum=1;
cin>>n>>k;
while(k--)
{
sum*=n;
sum%=m;
}
cout<<sum<<endl;
}
return 0;
} 
京公网安备 11010502036488号