poj 3070 Fibonacci(矩阵快速幂,简单)
2024-10-19 04:25:52
还是一道基础的矩阵快速幂。
具体的居者的幂公式我就不明示了。
#include<stdio.h>
#include<string.h>
#include<algorithm>
using namespace std; int num,mod=;
struct matrix
{
int a[][];
}; matrix multiply(matrix x,matrix y)//矩阵乘法
{
matrix temp;
for(int i=;i<num;i++)
{
for(int j=;j<num;j++)
{
int ans=;
for(int k=;k<num;k++)
{
ans+=((x.a[i][k]*y.a[k][j])%mod);
}
temp.a[i][j]=ans%mod;
}
}
return temp;
} matrix calc(matrix origin,matrix answ,int n)//矩阵快速幂——answ*origin^n
{
while(n)
{
if(n%==)
answ=multiply(origin,answ);
origin=multiply(origin,origin);
n/=;
}
return answ;
} int main()
{ // freopen("in.txt", "r", stdin);
// freopen("out.txt", "w", stdout);
int n;
while(scanf("%d",&n)!=EOF)
{
if(n==-)break;
matrix origin= {,,
,};
matrix answ={,,
,};
num=;
if(n==||n==)printf("%d\n",n);
else
{
answ=calc(origin,answ,n-);
printf("%d\n",answ.a[][]);
}
}
return ;
}
最新文章
- 使用NetBeans搭建基于Spring框架的Web应用
- python mysql desc
- webapp项目前端总结
- DataTable .Load 方法 (IDataReader)
- 摘自:java夜未眠之java学习之道
- MyBatis学习总结_02_使用MyBatis对表执行CRUD操作
- mvc的一些知识点
- Ruby on Rails Tutorial 第一章 之 简介
- EF 的 霸气配置
- WPF事件,路由事件
- 多标记学习--Learning from Multi-Label Data
- java对excel表格的上传和下载处理
- 视频云SDK iOS持续集成项目实践
- 三、scrapy后续
- TCP 详解
- 2018年底,IOS面试题的复习之OC的反射机制
- 去掉win7快捷方式小箭头
- js五道经典练习题--第五道成绩列表
- 将WinForm程序(含多个非托管Dll)合并成一个exe的方法
- 【Beta阶段】第三次Scrum Meeting!