POJ 3070 矩阵快速幂
来源:互联网 发布:淘宝网天猫女冬皮鞋 编辑:程序博客网 时间:2024/05/22 20:56
//{//1,1////1,0//}/////这个矩阵自乘n次。连续自乘n次的话就没意思了,那还不如直接上Fibonacci递推公式呢。///矩阵的魅力就在于它可以上快速幂。因为矩阵乘法满足结合律么……///注意取模#include <cstdlib>#include <cstring>#include <cstdio>#include <iostream>using namespace std;int N;struct matrix///定义数组{ int a[2][2];}origin,res;matrix multiply(matrix x,matrix y)///正常的矩阵相乘。{ matrix temp; memset(temp.a,0,sizeof(temp.a)); for(int i=0;i<2;i++) { for(int j=0;j<2;j++) { for(int k=0;k<2;k++) { temp.a[i][j]+=x.a[i][k]*y.a[k][j]%10000; temp.a[i][j]%=10000; } } } return temp;}void init(){ origin.a[0][0]=1; origin.a[0][1]=1; origin.a[1][0]=1; origin.a[1][1]=0; memset(res.a,0,sizeof(res.a)); res.a[0][0]=res.a[1][1]=1; //将res.a初始化为单位矩阵}void calc(int n){ while(n)///把n分解成二进制 { if(n&1) res=multiply(res,origin); n>>=1; origin=multiply(origin,origin);///origin, A的平方,A的四次方,A的8次方。 } printf("%d\n",res.a[0][1]%10000);}///话说这么简单的模板真的可以么???= =int main(){ while(scanf("%d",&N)!=EOF) { if(N==-1) break; init(); calc(N); } return 0;}
0 0
- POJ 3070 矩阵快速幂
- poj 3070 矩阵快速幂
- poj 3070(矩阵快速幂)
- poj 3070 矩阵快速幂
- 矩阵快速幂 poj 3070
- POJ 3070 矩阵快速幂
- POJ 3070 矩阵快速幂
- POJ 3070 矩阵快速幂
- poj 3070 矩阵快速幂
- POJ 3070 矩阵快速幂
- poj 3070 矩阵快速幂
- 矩阵快速幂POJ-3070
- poj 3070 矩阵快速幂
- 矩阵快速幂 poj 3070
- POJ 3070 (矩阵快速幂,矩阵快速幂求斐波那契)
- POJ 3070 Fibonacci 矩阵快速幂
- poj 3070(矩阵的快速幂)
- poj - 3070 - Fibonacci(矩阵快速幂)
- POJ 1840 HASH
- MySql+Memcached架构的问题
- POJ 2409 ploya定理
- nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
- UIApplication sharedApplication 的常用使用方法
- POJ 3070 矩阵快速幂
- html5学习笔记
- 手机连接wifi 访问本地服务器网站
- 音频播放
- 部署memcached环境及PHP扩展
- Windows安装配置php+memcached的方法
- 判断sqlserver对象是否存在
- MySQL管理数据表
- POJ 2367 topo