矩陣乘法必須滿足第乙個矩陣的列等於第二個矩陣的行。
結果矩陣的行是第乙個矩陣的行,列是第二個矩陣的列。
矩陣乘法行列各元素相乘。
矩陣快速冪利用冪的二分優化。
利用運算子過載進行一系列更方便的操作。
// 整數快速冪取模
template
long
long ipow(type x, type n, type mod)
return result;
}//矩陣運算類
struct mat
mat() = default;
//input and output
void in()
void out()
printf("\n");}}
//init
void init()
//overload
mat operator * (mat& rhs)
ans.rect[i][j] = res;}}
}return ans;
}void
operator *= (mat& rhs)
ans.rect[i][j] = res;}}
}rect = ans.rect;
}mat operator ^ (int k)
return ans;
}void
operator ^= (int k)
(*this) = ans;
}};
矩陣運算及 快速冪求矩陣
矩陣運算 這裡主要是針對方陣 是很重要的乙個環節,先說加法吧 加法比較簡單,同行同列想加就可以運算的 mat operator mat a,mat b 其次就是乘法 原理也簡單 線性代數應該學過,a i k 和 b k j 和做乘積運算得到c i j mat operator mat a,mat b...
快速冪(矩陣快速冪)
求 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 ...