본문 바로가기
알고리즘/메모

행렬의 표현

by sun__ 2019. 9. 27.

클래스나 구조체를 사용하는 법도 있겠지만 길이가 유동적인 정사각행렬에 대해서는 이 코드가 유용할 듯 하다.

 

#include <algorithm>
#include <vector>
using namespace std;
typedef long long ll;
typedef vector<vector<ll>> matrix;

matrix operator * (const matrix& a, const matrix& b){
	int n = a.size();
    matrix c(n, vector<ll>(n)); //n*n행렬이 0으로채워진 c 행렬이 생성된다.
    for(int i=0; i<n; i++)
    	for(int j=0; j<n; j++)
        	for(int k=0; k<n; k++)
            	c[i][j] += a[i][k] * b[k][j];
            
	return c;
}


               

 

O(너비^3)에 곱연산 수행한다.

'알고리즘 > 메모' 카테고리의 다른 글

치킨 맥너겟 이론 (chicken mcnugget theorem)  (0) 2019.11.03
LCA - Lowest Common Ancestor (최소공통조상)  (0) 2019.10.01
KMP  (0) 2019.09.18
lazy propagation - 세그먼트 트리 확장  (0) 2019.09.18
냅색, knapsack  (0) 2019.08.19