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;
}
相关文章推荐
- 矩阵快速幂
- Android AutoLayout全新的适配方式 堪称适配终结者
- Android设计模式系列(9)--SDK源码之适配器模式
- git .gitignore 忽略不需要被提交的文件
- 动态添加DataTemplate且为模板中的button控件添加Click Event
- Hadoop系列七:Hadoop之sqoop篇
- REHL7.0基本操作配置命令
- iOS搭建CI持续集成环境
- Java Calendar 类的时间操作
- 基于注解的 Spring MVC 简单入门
- vector容器经常用法
- 第二周学习进度条
- 操作系统中进程调度策略有哪几种
- Codis3手册
- Android Studio使用笔记(1)使用android studio时避免每次启动都进行网络gradle sync的方法
- ios 项目中的全局、局部、成员、属性变量
- leetcode 242. Valid Anagram
- ajax请求学习
- Spring MVC入门
- iis6兼容32位运行