HDU 4990 Reading comprehension
2015-07-17 17:56
441 查看
快速幂
#include<cstdio> #include<cstring> #include<cmath> #include<iostream> #include<algorithm> using namespace std; long long n,MOD; long long cal(long long a,long long b,long long mod) { long long c=1; while(b!=0) { if(b%2==1) c=(c*a)%mod,b--; else a=(a*a)%mod,b=b/2; } return c; } int main() { while(cin>>n>>MOD) { if(n%2==1) cout<<(cal(2,n+1,MOD*3)-1)/3<<endl; else cout<<(cal(2,n+1,MOD*3)-2)/3<<endl; } return 0; }
相关文章推荐
- Android开发UI之Toast的使用
- Freemarker定义宏的用法
- 今天正式开始在csdn上写笔记,写博客
- [LeetCode][Java] Simplify Path
- android获取友盟渠道名以及获取application中的meta-data
- .NET 数据访问技术概述
- 动态调用WebService的两种方法(多线程)
- *****正则表达式匹配URL
- java 启用新线程异步调用
- hibernate
- 认识3DMAX的各种插件
- UIScrollView 属性 contentOffset.y 莫名变成-20
- hihocoder 第五十四周
- struts2入门
- relative与absolute的结合使用
- 模块化的JavaScript开发的优势在哪里
- 希尔排序
- UILocalNotification本地推送
- java.lang.ClassNotFoundException: com.microsoft.sqlserver.jdbc.SQLServerDriver+数据库连接的工具类
- POJ 2823 Sliding Window