在類斐波那契數列問題中,我們常常需要運用構造乙個矩陣連乘的方法來求解。
而在矩陣連乘中我們需要用到乙個最基本的模板,快速冪矩陣。
與整數快速冪(整數快速冪傳送門)相似,矩陣的快速冪也是用到不斷減少冪的大小來實現
洛谷p3390
/*
* @description:
* @autor: kadia
* @date: 2020-08-03 12:07:27
* @lasteditors: kadia
* @lastedittime: 2020-08-03 21:38:52
*/#include
#define inf 0x3f3f3f3f
typedef
long
long ll;
using
namespace std;
const
int mod=
1000000007
;ll power
(ll x,
int y,
int mod)
return ans%mod;
}ll power
(ll x,
int y)
return ans;
}typedef
struct _matrix
matrix;
ll n,k;
matrix ans;
matrix matrixmul
(matrix a,matrix b)}}
return c;
}matrix matrixpower
(matrix a,ll k)
return ans;
}int
main()
}matrixpower
(a,k)
;for
(int i=
1;i<=n;i++
) cout << endl ;
}return0;
}
快速冪,矩陣乘法,矩陣快速冪
快速冪利用二進位制 複雜度 log級 include include include include using namespace std typedef long long ll typedef unsigned long long ull int q power int a,int b,int...
快速冪(矩陣快速冪)
求 3 0 3 1 3 n mod 1000000007 input 輸入乙個數n 0 n 10 9 output 輸出 計算結果 sample input 3sample output 40 分析 利用等比數列的求和公式得所求和是 3 n 1 1 2,如果暴力求3 n 1 會超時,這裡引入快速冪來...
快速冪 矩陣快速冪
快速冪 正常情況下求乙個數的冪時間複雜度為o n 而快速冪能把時間複雜度降到o logn 舉個例子 求5的13次方 思想首先把13化為二進位制 1101,即13 1101 8 1 4 1 2 0 1 1 即5 13 58 1 54 1 52 0 5 1 15 5 8 1 5 4 1 5 2 0 5 ...