poj3070 Fibonacci(矩阵快速幂模板)

#include<iostream>
using namespace std;
typedef long long LL;

struct mat{
	int m[2][2];
};

mat mul(mat a,mat b){
	mat ans;
	for(int i=0;i<2;i++){
		for(int j=0;j<2;j++){
			ans.m[i][j]=0;
			for(int k=0;k<2;k++){
				ans.m[i][j]+=a.m[i][k]*b.m[k][j];
			}
			ans.m[i][j]%=10000;
		}
	}
	return ans;
}

mat qp(mat a,LL b){
	mat ans={
	1,0,
	0,1
	};
	mat tem=a;
	while(b){
		if(b&1)//无括号
			ans=mul(ans,tem);
			tem=mul(tem,tem);
			b>>=1;
	}
	return ans;
}


int main(){
	LL n;
	mat a={
		1,1,
		1,0
	};
	while(cin>>n&&n!=-1){
		mat tem=qp(a,n);
		cout<<tem.m[0][1]<<endl;
	}
}
全部评论

相关推荐

若怜君欢:驾驶证去掉吧,PPT啥的也去掉,本硕课程去掉,导师和研究方向去掉;加入本硕排名(好才写);技能栏加入你会的那些控制算法和滤波算法,这个比你会啥啥啥软件更有用;获奖写上去,奖学金啊,有没有专利啊之类的 电机和硬件这一块,属于传统制造业,制造业实习并不多。多投一些攒攒经验,有实习最好,没有也不需要焦虑(制造业实习其实除了转正,没多大用处) 最后,划重点,等秋招开始后,把你所有社交软件都发一份简历上去,并经常更新,找人内推你!
点赞 评论 收藏
分享
缒梦&独舞:这家公司是这样的,去年给我实习offer了,不过也是面着玩儿的,他周六还要去做公益志愿活动
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务