struct Matrix{
int n , m ;int val[10][10] ;
Matrix operator *( const Matrix &b ) const{
Matrix temp ;
temp.n = n , temp.m = b.m ;
for( int i = 0 ; i < n ; i++ )
for( int j = 0 ; j < b.m ; j++ ){
temp.val[i][j] = 0 ;
for( int k = 0 ; k < m ; k++ ){
temp.val[i][j] += val[i][k] * b.val[k][j] ;
}
}
return temp ;
}
void print(){
for( int i = 0 ; i < n ; i++ ){
for( int j = 0 ; j < m ; j++ ){
printf("%d " , val[i][j] ) ;
}
printf("\n") ;
}
}
};
具体运用 :
一、对于点的操作 (平移 翻转 旋转 等等)
二、矩阵快速幂
三、等比数列 等比矩阵求解 POJ 3233
四、一些线性递推公式 第n项求解(ex 求第k个斐波那契是多少)
五、走K步能到达的点
六、1*2的方格填充N*M的矩阵比较小的时候可以用状态压缩。
七、建立起状态转移图