[POJ 3070] Fibonacci · 矩阵乘法
来源:互联网 发布:矢量软件coreldraw 编辑:程序博客网 时间:2024/06/02 06:32
搞了几年OI从来没见过这么裸的模板题……虽然说矩阵很好推,但是题目都仁慈地把模板给你了……那就拿这题练手了
那剩下来的还能有什么呢?不就是个模板吗,还是个弱化版的……ans表示最后结果的矩阵,unit表示单位矩阵,矩乘一般是用结构体的方式定义(详见struct matrix部分代码)
PS:这是第一次写矩阵乘法,代码非常难看,可以参考上一篇[Vijos 1067]
#include <stdio.h>#include <string.h>#include <algorithm>#include <iostream>using namespace std;const int p=10000;struct matrix{int num[3][3],n,m;void init(){memset(num,0,sizeof num);n=m=0;}}ans,unit;int n;matrix operator *(matrix a,matrix b){matrix c;c.init();c.n=a.n;c.m=b.m;for (int i=1;i<=c.n;i++)for (int j=1;j<=c.m;j++)for (int t=1;t<=a.m;t++)c.num[i][j]=(c.num[i][j]+a.num[i][t]*b.num[t][j])%p;return c;}void init(){unit.init();unit.num[1][1]=unit.num[1][2]=unit.num[2][1]=1;unit.n=unit.m=2;ans.init();ans.n=ans.m=2;ans.num[1][1]=ans.num[2][2]=1;}int main(){cin>>n;while (n!=-1){if (!n) {cout<<"0"<<endl;cin>>n;continue;}init();for (;n;n>>=1){if (n&1) ans=ans*unit;unit=unit*unit;}cout<<ans.num[1][2]<<endl;cin>>n;}return 0;}
0 0
- [POJ 3070] Fibonacci · 矩阵乘法
- POJ 3070 Fibonacci 矩阵乘法
- poj 3070 Fibonacci (快速矩阵乘法)
- POJ 3070 Fibonacci 矩阵乘法 整数分解
- Fibonacci - POJ 3070 矩阵乘法快速幂
- POJ 1070 Fibonacci 矩阵乘法
- 3070 Fibonacci 矩阵乘法
- poj 3070 Fibonacci + 矩阵乘法(矩阵快速幂)
- POJ 3070 Fibonacci数列 矩阵乘法及乘幂求法
- poj 3070 Fibonacci(矩阵乘法快速幂)
- POJ 3070 Fibonacci (矩阵)
- poj 3070 矩阵乘法
- POJ 3070 矩阵乘法.
- Fibonacci 矩阵乘法
- 【poj3070】 Fibonacci 【矩阵乘法】
- poj 3070 Fibonacci(矩阵运算)
- POJ 3070(Fibonacci-矩阵幂)
- poj 3070 Fibonacci【矩阵斐波拉切】
- java endorsed
- java 安全
- eclipse默认指向WebContent目录修改为webRoot 设置说明
- 域管理
- 单点登录SSO
- [POJ 3070] Fibonacci · 矩阵乘法
- tapestry介绍
- Insert Interval
- 精益技术简历之道:改善技术简历的47条原则
- Ant学习笔记
- tomcat context配置
- xml entity
- JMS与Spring
- web.xml中load-on-startup的作用