Description
Input
输入包含一行两个整数N和K,1<=N,K<=10^9
Output
一行一个整数,表示不同方案数目模1,000,000,007的值。
Sample Input
2 2
Sample Output
16
分析
我们通过找规律可以发现 答案为:
2k∗m
证明的话,我们设f[k]为大小为k的三角形的方案数,那么
f[k]=(∑i=1n−1f[k−i])+1
同数学归纳法可证
代码
#include <bits/stdc++.h>
#define MOD 1000000007
#define ll long long
ll pow(ll x,ll y)
{
ll res = 1;
while (y)
{
if (y & 1)
res = res * x % MOD;
x = x * x % MOD;
y >>= 1;
}
return res;
}
int main()
{
ll n,k;
scanf("%lld%lld",&n,&k);
printf("%lld\n",pow(2,n * k));
}