2018.09.25 poj3070 Fibonacci(矩阵快速幂)
传送门
矩阵快速幂板题,写一道来练练手。
这一次在poj做题总算没忘了改万能库。
代码:
#include<iostream>
#include<cstdio>
#define mod 10000
#define A a[0][0]
#define B a[0][1]
#define C a[1][0]
#define D a[1][1]
using namespace std;
int n;
struct Matrix{int a[2][2];Matrix(){A=0,B=C=D=1;}};
inline Matrix operator*(Matrix a,Matrix b){
	Matrix ret;
	ret.A=(a.A*b.A+a.B*b.C)%mod;
	ret.B=(a.A*b.B+a.B*b.D)%mod;
	ret.C=(a.C*b.A+a.D*b.C)%mod;
	ret.D=(a.C*b.B+a.D*b.D)%mod;
	return ret;
}
inline int ksm(){
	if(n==0)return 0;
	if(n==1)return 1;
	n-=2;
	Matrix x,ret;
	while(n){
		if(n&1)ret=ret*x;
		x=x*x,n>>=1;
	}
	return ret.D;
}
int main(){
	while(scanf("%d",&n)&&~n)printf("%d\n",ksm());
	return 0;
}
2018.09.25 poj3070 Fibonacci(矩阵快速幂)的更多相关文章
- poj3070 Fibonacci 矩阵快速幂
		学了线代之后 终于明白了矩阵的乘法.. 于是 第一道矩阵快速幂.. 实在是太水了... 这差不多是个模板了 #include <cstdlib> #include <cstring& ... 
- POJ3070:Fibonacci(矩阵快速幂模板题)
		http://poj.org/problem?id=3070 #include <iostream> #include <string.h> #include <stdl ... 
- UVA - 10229  Modular Fibonacci  矩阵快速幂
		Modular Fibonacci The Fibonacci numbers (0, 1, 1, 2, 3, 5, 8, 13, 21, 3 ... 
- poj 3070 Fibonacci (矩阵快速幂乘/模板)
		题意:给你一个n,输出Fibonacci (n)%10000的结果 思路:裸矩阵快速幂乘,直接套模板 代码: #include <cstdio> #include <cstring& ... 
- poj 3070 Fibonacci 矩阵快速幂
		Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2. F ... 
- HDU 1588 Gauss Fibonacci(矩阵快速幂)
		Gauss Fibonacci Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) ... 
- POJ 3070 Fibonacci 矩阵快速幂模板
		Fibonacci Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 18607 Accepted: 12920 Descr ... 
- $loj$10222 佳佳的$Fibonacci$ 矩阵快速幂
		正解:矩阵快速幂 解题报告: 我永远喜欢loj! 一看到这个就应该能想到矩阵快速幂? 然后就考虑转移式,发现好像直接想不好想,,,主要的问题在于这个*$i$,就很不好搞$QAQ$ 其实不难想到,$\s ... 
- POJ 3070  Fibonacci矩阵快速幂 --斐波那契
		题意: 求出斐波那契数列的第n项的后四位数字 思路:f[n]=f[n-1]+f[n-2]递推可得二阶行列式,求第n项则是这个矩阵的n次幂,所以有矩阵快速幂模板,二阶行列式相乘, sum[ i ] [ ... 
随机推荐
- python之类的相关知识
			面向对象技术简介 类: 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之 ... 
- Delphi 动态数组合并
			TIntArray = array of Integer; function MergeArray(const ArrayA, ArrayB: TIntArray): TIntArray; var i ... 
- Hibernate 的Ehache学习
			Hibernate默认二级缓存是不启动的,启动二级缓存(以EHCache为例)需要以下步骤: 1.添加相关的包: Ehcache.jar和commons-logging.jar,如果hibernate ... 
- JDBC之使用配置文件链接数据库
			写在前面 JDBC以一种统一的方式来对各种各样的数据库进行存取,JDBC为开发人员隐藏了不同数据库的不同特性.程序员开发时,知道要开发访问数据库的应用,于是将一个对应数据库的JDBC驱动程序类的引用进 ... 
- pyDes库  实现python的des加密
			下载及简介地址:https://twhiteman.netfirms.com/des.html 如需要在python中使用des加密,可以直接使用pyDes库加密,该库提供了CBC和ECB两种加密方式 ... 
- moco操作
			1.启动 单个文件启动:将jar包跟启动的文件放在一个文件夹下 命令:java -jar moco-runner-<version>-standalone.jar http -p 12 ... 
- oracle查询锁表
			select b.username,b.sid,b.serial#,logon_time from v$locked_object a,v$session b where a.session_id = ... 
- 基于AspectJ的注解方式进行AOP开发
			-------------------siwuxie095 基于 AspectJ 的注解方式进行 AOP 开发 ... 
- MYSQL错误:You can't specify target table for update in FROM clause
			这句话意思是:不能先select再更新(修改)同一个表. 可以再外嵌套多一层,这个问题只有mysql有,mssql和oracle都没有. # 出错delete from Person where Id ... 
- linux 下 php 安装 Gearman
			Gearman是一个分发任务的程序框架,它会对作业进行排队自动分配到一系列机器上.gearman跨语言跨平台,很方便的实现异步后台任务. 一个Gearman请求的处理过程涉及三个角色: Clien ... 
