您的位置:首页 > 其它

SDUT 3510 快速幂

2016-03-14 17:15 281 查看


题目描述

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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: