MY MEMO
[BAEKJOON] 11049 행렬의 곱셈 순서 - 연쇄 행렬 최소 곱셈 알고리즘 본문
정말 어려웠다..
일단 나는 수학을 잘 못하기 때문에 이해하는 데 오랜 시간이 걸렸다
이 블로그의 설명이 가장 이해가 잘됬다 (짱짱)
전체적인 개념은
행렬 1에서 4까지 계산할때
1에서2까지 2에서 4까지 그리고 1에서 2 그리고 4까지 합치는 비용을 더하고
1에서 3까지 3에서 4까지 그리고 1에서 3 그리고 4까지 합치는 비용의 최소를 계산하는 것이다.
+)
연쇄 행렬의 최소 곱셈 계산 방향
1,1 / 2,2 ...에서는 0을 저장하고
1,2에 가서 1,1+2,2+d0*d1*d2
2,3에 가서 2,2+3,3+d0*d2*d3
3,4에 가서 ....
반복해서 계산해주면 된다
-----------
1. d배열의 저장
만약 10*2 2*3 3*4
라면
d배열에는
d[0] = 10 / d[1] = 2 / d[2] = 3 / d[3] =4
라고 저장이 된다
2. 3중 반복문
diagonal은 어느 대각선을 계산할지 더해주는 것이다
x=y인 곳부터 시작해서 위로 올라가면서 대각선으로 계산한다
i는 x축 j는 y축이다!
1 2 3 4 가 있을 때
(1 2) 3 4
(1 2) (3 4)
(1 2 3 4)
이렇게 묶을 수도 있고
(1 2) 3 4
((1 2) 3) 4
(((1 2) 3) 4)
이렇게 묶을 수도 있다
이렇게 묶는 방법에 따라 정답이 달라질때
보통 연쇄 행렬 최소 곱셈 알고리즘을 쓰는 것 같다
'ALGORITHM > BAEKJOON' 카테고리의 다른 글
[BAEKJOON] 5589 공통 부분 문자열 (0) | 2017.10.08 |
---|---|
[BAEKJOON] 11066 파일 합치기 (0) | 2017.10.08 |
[BAEKJOON] 2352 반도체 설계 (0) | 2017.10.08 |
[BAEKJOON] 5557 1학년 (0) | 2017.10.08 |
[BAEKJOON 1822 차집합 (실패) (0) | 2017.10.05 |
Comments