题目链接:http://poj.org/problem?id=3070

.

就是斐波那契的另一种表示方法是矩阵的幂;

所以是矩阵快速幂;矩阵快速幂学习

#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#include<math.h>
using namespace std;
#define N 10 struct node
{
int a[N][N];
}s,e; node mul(node p, node q)///求两个矩阵的积;
{
node tem;
for(int i=; i<; i++)
{
for(int j=; j<; j++)
{
tem.a[i][j] = ;
for(int k=; k<; k++)
tem.a[i][j] = (tem.a[i][j]+p.a[i][k]*q.a[k][j])%;
}
}
return tem;
}
node Pow(node p, int n)
{
node tem;
for(int i=; i<; i++)
for(int j=; j<; j++)
tem.a[i][j] = (i==j);
while(n)
{
if(n&)///n是奇数;
tem = mul(tem, p);///让矩阵e和矩阵a相乘;
n/=;
p = mul(p, p);
}
return tem;
} int main()
{
s.a[][] = ;
s.a[][] = ;
s.a[][] = ;
s.a[][] = ;
int n;
while(scanf("%d", &n),n!=-)
{
e = Pow(s, n);
printf("%d\n", e.a[][]);
}
return ;
}

对比着想想快速幂;

最新文章

  1. Django自定义模板
  2. WPS 认证机制
  3. [SVN Mac的SVN使用]
  4. oracle的启动过程(各个模式启动)
  5. python中的for循环
  6. ibats注意
  7. 使用NSURLSession实现断点续传
  8. HDU 5845 Best Division
  9. 《Java从0开始的成长之路》
  10. 树莓派SSH连接快速教程
  11. Spring AOP选择切点的问题
  12. RpcContext
  13. 巧妙使用CSS创建可以打印的页面
  14. Jmeter——BeanShell PreProcessor的用法
  15. ffmpeg C++程序编译时报__cxa_end_catch错误
  16. 算法之水仙花数(Java语言)
  17. centos 清除yum缓存
  18. 神勇的产品经理之路系列-10 PD三板斧
  19. 如何启动mininet实例上的wireshark图形界面
  20. java代码随机数组合,随机号码产生器

热门文章

  1. java:常用的两种设计模式(单例模式和工厂模式)
  2. python保存爬取的图片
  3. SNP密度分布模式
  4. pentestbox使用教程
  5. Excel 自定义关闭按钮
  6. java基础知识小小结
  7. 如何修改织梦官方flash幻灯片的方法
  8. 错题0925-java
  9. linux -- chcp
  10. 小结:STL