矩阵经典题目六:poj 3070 Fibonacci
http://poj.org/problem?id=3070
按已构造好的矩阵,那么该矩阵的n次方的右上角的数便是f[n]。
#include <stdio.h>
#include <iostream>
#include <map>
#include <set>
#include <list>
#include <stack>
#include <vector>
#include <math.h>
#include <string.h>
#include <queue>
#include <string>
#include <stdlib.h>
#include <algorithm>
#define LL long long
#define _LL __int64
#define eps 1e-12
#define PI acos(-1.0)
#define C 240
#define S 20
using namespace std;const int maxn = 110;struct matrix
{int mat[3][3];void init(){memset(mat,0,sizeof(mat));mat[1][1] = mat[2][2] = 1;}
}a;matrix mul(matrix a, matrix b)
{matrix res;memset(res.mat,0,sizeof(res.mat));for(int i = 1; i <= 2; i++){for(int k = 1; k <= 2; k++){if(a.mat[i][k] == 0) continue;for(int j = 1; j <= 2; j++){int t = a.mat[i][k]*b.mat[k][j];res.mat[i][j] = (res.mat[i][j] + t)%10000;}}}return res;
}matrix pow(matrix a, int n)
{matrix res;res.init();while(n){if(n&1)res = mul(res,a);a = mul(a,a);n >>= 1;}return res;
}int main()
{int n;while(~scanf("%d",&n)){if(n == -1) break;a.mat[1][1] = a.mat[1][2] = a.mat[2][1] = 1;a.mat[2][2] = 0;matrix ans = pow(a,n);printf("%d\n",ans.mat[1][2]);}return 0;
}
转载于:https://www.cnblogs.com/bhlsheji/p/4183357.html
矩阵经典题目六:poj 3070 Fibonacci相关推荐
- 矩阵快速幂 POJ 3070 Fibonacci
题目传送门 1 /* 2 矩阵快速幂:求第n项的Fibonacci数,转置矩阵都给出,套个模板就可以了.效率很高啊 3 */ 4 #include <cstdio> 5 #include ...
- POJ 3070 Fibonacci(矩阵快速幂入门、模板)
? 题目链接:http://poj.org/problem?id=3070 ? 这题就是让求斐波那契数列的第n项,但是题目中n很大,所以打表和直接求都会TLE,对于这个题我们可以用矩阵快速幂,下面 ...
- POJ - 3070 Fibonacci
题目已经告诉你斐波那契矩阵算法了... 所以需要用到矩阵快速幂,看起来名字很diao但其实和普通快速幂基本一毛一样... 1 #include <iostream> 2 #include ...
- POJ 3070 Fibonacci
裸奔的矩阵乘法,当模板了. #include <iostream>#include <cstring>#include <cstdio> using namespa ...
- H - Fibonacci POJ - 3070 (矩阵快速幂)
H - Fibonacci POJ - 3070 (矩阵快速幂) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and ...
- 十个利用矩阵乘法解决的经典题目
出自matrix67.com 好像目前还没有这方面题目的总结.这几天连续看到四个问这类题目的人,今天在这里简单写一下.这里我们不介绍其它有关矩阵的知识,只介绍矩阵乘法和相关性质. 不要以为数学 ...
- 【转】矩阵十大经典题目
经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转 这里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转(两种情况), ...
- 十个利用矩阵解决的经典题目
借鉴做题: 经典题目1 给定n个点,m个操作,构造O(m+n)的算法输出m个操作后各点的位置.操作有平移.缩放.翻转和旋转 这里的操作是对所有点同时进行的.其中翻转是以坐标轴为对称轴进行翻转( ...
- 矩阵乘法的经典题目_源自Matrix67_
嘛,都刷一遍好辣. 矩阵 Am∗n A_{m*n}就是一个m行n列的数表. 考虑矩阵的乘法: C=A∗B=∑aik∗bkj C = A * B = \sum a_{ik}*b_{kj} 那么对于矩阵A ...
最新文章
- Spring的PropertyPlaceholderConfigurer事例应用
- 分布式缓存DistributedCache的使用
- dell r220服务器配置oracle linux 阵列卡,如何在Dell服务器PERC5/6阵列卡配置RAID
- node n 切换node版本失败_记一次 node-sass@4.x 安装失败
- 学生选课数据库SQL语句练习题——成绩表
- MR作业的提交监控、输入输出控制及特性使用
- java 七巧板油漆问题_七巧板颜色填充的问题?
- CCNA试验-NAT
- 基于JAVA+SpringMVC+Mybatis+MYSQL的网上拍卖秒杀竞价系统
- c+ socket编程
- 安装运行jupyter notebook时报错:ModuleNotFoundError: No module named 'prompt_toolkit.formatted_text'...
- .net连接SqlServer数据库
- vscode最适合编程的 6 种字体
- 写一篇meta分析要多少时间?如何写好一篇Meta分析,你需要这样做
- ftp误删服务器文件恢复,ftp服务器文件误删
- mysql求回购率_用户行为分析——回购率、复购率(SQL、Python求解)
- MCV 和 MTV框架基本信息
- 计算机考研难度档,计算机考研院校报考难度排行
- Android 内存泄露
- 腾讯云服务器的稳定性和安全性怎么样?