NOJI 148 fibonacci数列(二) 矩阵乘法二分幂
2013-05-01 14:24
176 查看
第一次这样写以为不对的,自己撮合的着写的没想到对了,太激动了~。~
点击打开链接
主要是要知道怎么定义一种类型。
然后就是矩阵乘法的知识了。
点击打开链接
#include <stdio.h> #include <string.h> #include <algorithm> using namespace std; struct app { int p[30][30]; }; app mult(app a, app b) { app c; int i , j, k; for( i =0; i<2; i++) for(j =0; j<2; j++) { c.p[i][j]=0; for(k =0; k<2; k++) { c.p[i][j]=(c.p[i][j]+a.p[i][k]*b.p[k][j])%10000; } } return c; } app pow(app a, int k) { app b; memset(b.p, 0, sizeof(b.p)); for(int i=0;i<2; i++) { b.p[i][i]=1; } while(k) { if(k&1) b=mult(b,a); a=mult(a,a); k>>=1; } return b; } int main() { int n; while(~scanf("%d", &n)&&n!=-1) { app a; a.p={{1,1},{1,0}}; app d=pow(a, n); printf("%d\n",d.p[0][1]); } return 0; }
主要是要知道怎么定义一种类型。
然后就是矩阵乘法的知识了。
相关文章推荐
- nyoj 148 fibonacci数列(二) 【矩阵快速幂】
- NYOJ 148 fibonacci数列(二)
- NYOJ 148 fibonacci数列(二)【矩阵快速幂】
- fibonacci数列(二) nylg148
- nyist 148 fibonacci数列的矩阵解法
- NYOJ 题目148 fibonacci数列(二)(矩阵快速幂)
- nyoj-148-fibonacci数列(二)
- NYOJ 148 fibonacci数列(二)
- NYOJ-148 fibonacci数列(二)
- nyoj 301 递推求值 和 nyoj 148 fibonacci数列(二) 【矩阵】
- nyoj 148 fibonacci数列(二)【矩阵】
- nyoj--148 fibonacci数列(二)(矩阵快速幂)
- nyist 148 fibonacci数列(二)
- nyoj-148-fibonacci数列(二)
- nyoj 148 fibonacci数列(二)
- 矩阵快速幂(NYOJ 148 fibonacci数列(二), POJ 3233 Matrix Power Series, hdu 2157 How many ways??)
- nyoj 148 fibonacci数列(二)(矩阵快速幂)
- nyoj 148 fibonacci数列(二)
- nyoj 148 fibonacci数列(二)
- nyoj_148_fibonacci数列(二)_矩阵快速幂