반응형
https://www.acmicpc.net/problem/11049
#include <iostream>
#include <climits>
using namespace std;
int N;
int d[503];
int matrix[503][2];
long long dp[503][503];
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> N;
for (int i = 1; i <= N; i++) {
cin >> matrix[i][0] >> matrix[i][1];
d[i] = matrix[i][1];
}
d[0] = matrix[1][0];
for (int diagonal = 1; diagonal <= N - 1; diagonal++) {
for (int i = 1; i <= N - diagonal; i++) {
int j = i + diagonal;
dp[i][j] = INT_MAX;
for (int k = i; k <= j - 1; k++) {
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k + 1][j] + d[i - 1] * d[j] * d[k]);
}
}
}
cout << dp[1][N] << '\n';
return 0;
}
반응형
'Algorithm > problem' 카테고리의 다른 글
백준 13711번 : LCS 4 - LIS (0) | 2022.11.30 |
---|---|
백준 14003번 : 가장 긴 증가하는 부분 수열 5 - LIS (0) | 2022.11.30 |
백준 11585번 : 속타는 저녁 메뉴 - kmp (0) | 2022.11.28 |
백준 1701번 : Cubeditor - KMP (0) | 2022.11.28 |
백준 10266번 : 시계 사진들 - kmp (0) | 2022.11.26 |