题目描述
ACM界有一种变异的字符串,长度为N,仅由a,b,c,d四个字母组成,其中a和c在字符串中必须为偶数个(也可以不出现),请计算出满足条件的字符串的个数。
输入
多组输入,每组输入N(1 <= N < 2^63),表示字符串的长度
输出
每组一行,输出字符串的个数(由于数据较大,只需输出最后两位)
示例输入
1 2
示例输出
2 6
找规律,可以看出答案是4^(n-1) + 2^(n-1)
结果很大,只能用快速幂
#include <bits/stdc++.h>
#define LL long long
#define Mod 100
using namespace std;
LL FastMod(LL a, LL b)
{
LL ret = 1;
while(b){
if(b & 1) ret = a * ret % Mod;
a = (a * a) % Mod;
b >>= 1;
}
return ret;
}
int main()
{
LL n;
while(~scanf("%lld", &n))
printf("%lld\n",(FastMod(4, n-1) + FastMod(2, n-1))%Mod );
return 0;
}