hihoCoder#1143 : 骨牌覆盖问题·一
2016-03-13 21:44
423 查看
快速幂需要注意一个地方,就是别超了数字的范围,及时longlong也很容易爆炸,及时取余才是王道
http://hihocoder.com/problemset/problem/1143
http://hihocoder.com/problemset/problem/1143
#include<iostream> using namespace std; long long di[4] ; void solve(long long a[4], long long b[4], long long *cc) { long long aa[4] = {a[0],a[1],a[2],a[3]}; long long bb[4] = { b[0], b[1], b[2], b[3] }; cc[0] = (aa[0] * bb[0] + aa[1] * bb[2]) % 19999997;//重点啊~~~~ cc[1] = (aa[0] * bb[1] + aa[1] * bb[3]) % 19999997; cc[2] = (aa[2] * bb[0] + aa[3] * bb[2]) % 19999997; cc[3] = (aa[2] * bb[1] + aa[3] * bb[3]) % 19999997; int i = 0; } void ji(long long n, long long *answer) { while (n) { if (n & 1) { solve(answer, di, answer); } solve(di, di, di); n = n >> 1; } } int main() { long long n; while (cin >> n){ di[0] = 0; di[1] = 1; di[2] = 1; di[3] = 1; long long answer[4] = { 1, 0, 0, 1 }; ji(n, answer); cout << answer[3] << endl; } return 0; }
相关文章推荐
- Android开发学习之路--RxAndroid之操作符
- 编写自定义的JDBC框架与策略模式
- 处理OSX创建的U盘, 删除EFI分区
- [Java基础] List、Set、Map区别
- ubuntu 中vim的安装与使用
- Sublime text 3 如何格式化HTML代码
- JSP自定义标签
- 自定义ViewGroup
- ExtJS中layout的12种布局风格
- jQuery訪问属性,绝对定位
- 作业二:Github注册账户过程
- BZOJ 1026 windy数
- POJ2376 Cleaning Shifts 【贪心】
- bzoj1562[NOI2009]变换序列——2016——3——12
- 1002. 写出这个数 (20)——做题纪录
- 如何解读Caffe源码
- 红帽7系linux破解root密码的三种办法
- 06.数据库日常应用实例
- Java网络编程案例--CS模型的简单实现
- 造轮子:补码分析补充(二)