poj 3070 矩阵快速乘

  1. #include <map>
  2. #include <stdio.h>
  3. #include <iostream>
  4. using namespace std;
  5. void multiple ( int x[2][2], int y[2][2] )
  6. {
  7. int temp[2][2]
  8. temp[0][0] = (;x[0][0]*y[0][0]+x[0][1]*y[1][0])%10000;
  9. temp[0][1] = (x[0][0]*y[0][1]+x[0][1]*y[1][1])%10000;
  10. temp[1][0] = (x[1][0]*y[0][0]+x[1][1]*y[1][0])%10000;
  11. temp[1][1] = (x[1][0]*y[0][1]+x[1][1]*y[1][1])%10000;
  12. x[0][0] = temp[0][0];
  13. x[0][1] = temp[0][1];
  14. x[1][0] = temp[1][0];
  15. x[1][1] = temp[1][1];
  16. }
  17. int main()
  18. {
  19. int n;
  20. while( ~scanf("%d", &n) )
  21. {
  22. int x[2][2] =
  23. { 1, 1,
  24. 1, 0
  25. };
  26. int y[2][2] =
  27. { 1, 0,
  28. 0, 1
  29. };
  30. if(n == 0) printf("0\n");
  31. else
  32. {
  33. for(; n>0; n /=2)
  34. }
  35. }
  36. return 0;
  37. }

来自为知笔记(Wiz)

附件列表

时间: 2024-10-17 23:05:34

poj 3070 矩阵快速乘的相关文章

POJ 3070 矩阵快速幂解决fib问题

矩阵快速幂:http://www.cnblogs.com/atmacmer/p/5184736.html 题目链接 #include<iostream> #include<cstdio> using namespace std; typedef long long ll; #define MOD 10000 ll a[7],b[7],a0[7],b0[7]; void pow_mod(ll n) { a0[1]=a0[2]=a0[3]=1,a0[4]=0; b0[1]=b0[4]=

Fibonacci (poj 3070 矩阵快速幂)

Language: Default Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 10099   Accepted: 7211 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn ? 1 + Fn ? 2 for n ≥ 2. For example, the first ten terms of the

POJ 3070 矩阵快速幂

裸题,最简单fib的应用模板,算是新技能get 吧. 其实和快速幂差不多了,只是矩阵代替的递推式. 1 #include <cstdio> 2 #include <cstring> 3 #include <algorithm> 4 using namespace std; 5 const int maxn = 1005; 6 struct node 7 { 8 int a[2][2]; 9 void init() 10 { 11 a[0][0] = a[1][0] =

poj 3070 矩阵快速幂简单题

基本运用,基本是模板题. 求fi[n].       (1,1)    *( 1  ) ( 1,0)     (  0) #include<iostream> #include<cstring> using namespace std; struct juz { int bat[3][3]; int x,y; //行 列 }; juz mutp(juz a,juz b) { juz c; c.x=a.x;c.y=b.y; memset(c.bat,0,sizeof(c.bat));

poj 3070 矩阵快速幂模板

题意:求fibonacci数列第n项 1 #include "iostream" 2 #include "vector" 3 #include "cstring" 4 using namespace std; 5 6 typedef unsigned long int ULL; 7 typedef vector<ULL> vec; 8 typedef vector<vec> mat; 9 const ULL P=10000

POJ 3070-Fibonacci(矩阵快速幂求斐波那契数列)

Fibonacci Time Limit:1000MS     Memory Limit:65536KB     64bit IO Format:%I64d & %I64u Submit Status Practice POJ 3070 Appoint description:  System Crawler  (2015-02-28) Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn ? 1 +

poj 3233(矩阵快速幂)

题目链接:http://poj.org/problem?id=3233: 题意:给出一个公式求这个式子模m的解: 分析:本题就是给的矩阵,所以很显然是矩阵快速幂,但有一点,本题k的值非常大,所以要用二分求和来减少运行时间. 代码: #include <set> #include <map> #include <stack> #include <queue> #include <math.h> #include <vector> #in

poj 3734 矩阵快速幂+YY

题目原意:N个方块排成一列,每个方块可涂成红.蓝.绿.黄.问红方块和绿方块都是偶数的方案的个数. sol:找规律列递推式+矩阵快速幂 设已经染完了i个方块将要染第i+1个方块. a[i]=1-i方块中,红.绿方块数量都是偶数的方案数 b[i]=1-i方块中,红.绿方块数量一个是偶数一个是奇数的方案数(红even绿odd 或 红odd绿even) c[i]=1-i方块中,红.绿方块数量都是奇数的方案数 可以得出递推公式: a[i+1]=2*a[i]+b[i] b[i+1]=2*a[i]+2*b[i

POJ 3070 矩阵mob

. 矩阵高速幂想法与快速幂相同 #include<iostream> #include<cstdio> #include<cstring> #define MOD 10000 using namespace std; struct matrix { int mat[2][2]; matrix() { //构造函数与结构体同名 若写作init()函数 需调用 memset(mat,0,sizeof(mat)); } }; matrix mul(matrix A , mat