Fibonacci sequence 纪中 1240 矩阵乘法
来源:互联网 发布:软件取得的阶段性成果 编辑:程序博客网 时间:2024/05/24 05:03
分析
这就是裸的矩阵乘法啊!!!
数列f[n]=f[n-1]+f[n-2],f[1]=f[2]=1的前n项和s[n]的快速求法
0 1 0
1 1 1
0 0 1
代码
const a1:array[1..3,1..3] of int64=((0,1,0), (1,1,1), (0,0,1)); f:array[1..3] of int64=(1,1,1);type arr=array[1..3,1..3] of int64;var a:arr; b:array[1..10] of int64; i,j,k:longint; n,n1:int64; m:longint; ans:longint;function cheng(x,x1:arr):arr;var i,j,k:longint;begin fillchar(cheng,sizeof(cheng),0); for i:=1 to 3 do for j:=1 to 3 do for k:=1 to 3 do cheng[i,j]:=(cheng[i,j]+x[i,k]*x1[k,j]) mod 10000;end;function seach(n:int64):arr;var i,j,k:longint; an:arr;begin fillchar(an,sizeof(an),0); if n<>1 then if n mod 2=0 then begin an:=seach(n div 2); seach:=cheng(an,an); end else begin an:=seach(n div 2); an:=cheng(an,an); seach:=cheng(an,a1); end else seach:=a1;end;begin readln(m); for i:=1 to m do begin read(n,n1); n:=n-2; n1:=n1-1; ans:=0; fillchar(b,sizeof(b),0); if n>0 then begin a:=seach(n); for j:=1 to 3 do for k:=1 to 3 do b[j]:=(b[j]+f[k]*a[k,j]) mod 10000; ans:=b[3] mod 10000; end else if n<>-1 then ans:=1; n:=n1; fillchar(b,sizeof(b),0); if n>0 then begin a:=seach(n); for j:=1 to 3 do for k:=1 to 3 do b[j]:=(b[j]+f[k]*a[k,j]) mod 10000; ans:=b[3] mod 10000-ans; end else if n<>-1 then ans:=1-ans; if ans<0 then ans:=ans+10000; writeln(ans); end;end.
3 0
- Fibonacci sequence 纪中 1240 矩阵乘法
- Fibonacci sequence_纪中1240_矩阵乘法
- Fibonacci 矩阵乘法
- 3070 Fibonacci 矩阵乘法
- 【poj3070】 Fibonacci 【矩阵乘法】
- hdu 3117 Fibonacci Numbers(矩阵乘法+fibonacci)
- POJ 3070 Fibonacci 矩阵乘法
- 1250 Fibonacci数列(矩阵乘法)
- POJ 1070 Fibonacci 矩阵乘法
- HDU5950Recursive sequence(构造矩阵+矩阵乘法)
- poj 3070 Fibonacci (快速矩阵乘法)
- POJ 3070 Fibonacci 矩阵乘法 整数分解
- hdu 1588 Gauss Fibonacci(矩阵乘法,二分)
- nyoj fibonacci数列(二) 矩阵乘法
- 【矩阵乘法】Fibonacci数列 WikiOI 1732/1250
- hdu 2855 Fibonacci Check-up(矩阵乘法)
- 【poj3070】Fibonacci (矩阵乘法+快速幂)
- Fibonacci - POJ 3070 矩阵乘法快速幂
- MUI组件二:复选框、对话框、图片轮播、图标和输入框
- Putty中设置byobu快捷键
- 四个维度,完成共享数据精细化处理
- Linux下快速删除大量文件/文件夹方法
- js 中对象--属性相关操作
- Fibonacci sequence 纪中 1240 矩阵乘法
- 对express中next函数的一些理解
- 内联函数和宏定义的差别
- makefile学习笔记1
- HDU 2821 Pusher
- mysql_unbuffered_query与mysql_query的区别
- Foxmail中QQ企业邮箱只能收取不能发送邮件
- IC卡(Integrated Circuit Card,集成电路卡)(一)
- 一个JavaWeb工程师的进阶之路