注意本题有序,就当做是序偶就行了!!从而推导公式ans=(2^k-1)^n
代码:
#include <algorithm>
#include <iostream>
#include <cstring>
#include <cstdlib>
#include <vector>
#include <queue>
#include <cstdio>
#include <cmath>
#include <string>
#include <stack>
#include <cctype>
using namespace std;
#define mod 1000000007
long long fun(long long a,long long p,long long m)
{
if(p==0)
return 1;
long long r=a%m;
long long k=1;
while(p>1)
{
if((p&1)!=0)
{
k=(k*r)%m;
}
r=(r*r)%m;
p>>=1;
}
return (r*k)%m;
}
int main()
{
long long n,k;
while(cin>>n>>k)
{
long long sum;
sum=fun(2,k,mod)-1;
long long temp;
temp=fun(sum,n,mod);
cout<<temp<<endl;
}
return 0;
}