题意比较复杂就不说了。
看到这题是因为很多学弟都切了,瞬间感觉自己很虚,怎么JSOI2015这么简单了,难道是我弱了?于是来切切。。
发现这题目直接想的话组合数什么的都比较复杂,然后手推推出来是2^(nk)。。比较水。
问题是tmdcmath这个头文件有毒啊!!!我日就一个快速幂啊,怎么加上就错不加就对了?????????
#include<cstdio>
#include<algorithm>
#include<cstring>
//#include<cmath>
#define fo(i,a,b) for(int i=a;i<=b;i++)
#define fd(i,a,b) for(int i=a;i>=b;i--)
using namespace std;
typedef long long ll;
ll n,k;
ll mo=1000000007;
ll pow(ll a,ll b)
{
ll res=1,base=2;
while (b)
{
if (b%2==1)res=res*base%mo;
base=base*base%mo;
b=b/2;
}
return res;
}
int main()
{
// freopen("subset.in", "r", stdin);
// freopen("subset.out", "w", stdout);
scanf("%lld%lld",&n,&k);
printf("%lld\n",pow(2,n*k));
return 0;
}