链接:https://ac.nowcoder.com/acm/contest/4381/A
牛牛特别羡慕那些会计数的选手,作为一个计数非常菜的选手,牛牛也想计数变得这么厉害,然而实在是太菜了。
牛牛最近又被一个简单计数题难住了,这个题目是这样的,现在有红,蓝,黑,白四种颜色的球无数种。牛牛现在想数有多少种长度为nn的序列满足红色和蓝色的球的数量都是偶数个,黑色和白色的球的数量都是奇数个。
由于这样的序列的个数可能太多了,你只需要输出在模1e9+71e9+7之后的答案就可以了。
输入描述:
一行一个nn表示序列的长度.
输出描述:
一个整数表示在模1e9 + 71e9+7之后的答案.
示例1
输入
10
输出
131072
备注:
1 \leq n \leq 1e181≤n≤1e18
代码:
#include<bits/stdc++.h>
using namespace std;
long long n,t,s,m,k,d,flag,mod=1e9+7;
long long quick_pow(long long a,long long b)
{
long long ret = 1;
while (b)
{
if (b & 1)
{
ret *= a;
ret %= mod;
}
b >>= 1;
a *= a;
a %= mod;
}
return ret;
}
int main()
{
cin>>n;
if(n%2==1)
cout<<0;
else
{
if(n==2)
cout<<1;
else
{
k=n/2;
k=k*4-3;
cout<<quick_pow(2,k);
}
}
}