1. 矩阵乘法
#include <vector>
using namespace std;
typedef vector<int > vec;
typedef vector<vec > mat;
int m = 100;
// a*b
mat multi(mat a,mat b)
{
mat c (a.size(),vec(b[0].size()));
for(int i=0 ;i<a.size; i++) //a.size--a的行数
{
for(int k=0;k<b.size();k++) //b.size--b的行数 == a的列数
{
for(int j=0;j<b[0].size();j++) //b[0].size--b的列数
{
c[i][j] = (c[i][j] + a[i][k]*b[k][j]) % m;
}
}
}
}
2.矩阵幂mat pow(mat a, ll n)
{
mat b(a.size() ,vec(a.size()));
for(int i=0;i<a.size();i++)
{
b[i][i] = 1;
}
while(n > 0)
{
if(n&1)
b = mul(b,a);
a = mul(a,a);
n>>=1;
}
return b;
}