Fibonacci----poj3070(矩阵快速幂, 模板)
2024-08-28 17:07:40
题目链接: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 ;
}
对比着想想快速幂;
最新文章
- Django自定义模板
- WPS 认证机制
- [SVN Mac的SVN使用]
- oracle的启动过程(各个模式启动)
- python中的for循环
- ibats注意
- 使用NSURLSession实现断点续传
- HDU 5845 Best Division
- 《Java从0开始的成长之路》
- 树莓派SSH连接快速教程
- Spring AOP选择切点的问题
- RpcContext
- 巧妙使用CSS创建可以打印的页面
- Jmeter——BeanShell PreProcessor的用法
- ffmpeg C++程序编译时报__cxa_end_catch错误
- 算法之水仙花数(Java语言)
- centos 清除yum缓存
- 神勇的产品经理之路系列-10 PD三板斧
- 如何启动mininet实例上的wireshark图形界面
- java代码随机数组合,随机号码产生器