π¦11049: νλ ¬ κ³±μ μμ
[μκ³ λ¦¬μ¦ νμ΄] κ°λκ·
Reviewed by midade midang (devmidade12@gmail.com)
Reviewed:: 2024-02-19
λ¬Έμ νμΈνκΈ°
νμ΄
-
μ΄ λ¬Έμ λ 1μκ°μ κ³ λ―Όν΄λ μ ν κ°νΌλ₯Ό μ‘μ§ λͺ»νκ² μ΄μ κ²°κ΅ https://cocoon1787.tistory.com/318μ νμ΄λ₯Ό μ°Έκ³ νλ€. νμ€ν DP λ¬Έμ μ μ½νλ€κ³ λκ»΄μ§λ€.
-
dp[n][m] λ n μμ m κΉμ§μ λ²μλ₯Ό νλ ¬ μ°μ°νμμ μλ―Ένλ€.
-
3μ€ for λ¬Έμ μ¬μ©νμ¬ νλ ¬ μ°μ°μ λ²μ, μμ μ§μ , λ²μ μ°μ°μ μ§μ ν΄ κ³μ°νλ€.
-
i λ νλ ¬μ λ²μλ₯Ό μ§μ νλ€. i = 2 μΌ κ²½μ°, dp[n][m] μμ m-n, nκ³Ό m μ¬μ΄μ 거리, μ°¨μ΄κ° 2λΌλ λ»μ΄λ€.
-
j λ νλ ¬μ μμ μ§μ μ λ§νλ€. j = 3, i = 2 μΈ κ²½μ° dp[3][5] λ‘ 3μμ μμν΄μ 5λ²μ§ΈκΉμ§μ νλ ¬μ ꡬνλ€.
-
mid λ λ²μ μμμμ μ€μ§μ μΈ μ°μ°μ μ§ννλ€. dp[3][10] μ ꡬνλ€κ³ νλ©΄ mid λ 3~10 μ κ°μ΄κ³ , λ°λ³΅λ¬Έμ λλ©΄μ dp[3][3], dp[3][4], β¦ λ₯Ό ꡬνλ€.
-
μ΅μ’ μ μΌλ‘λ dp[1][N] μ ꡬνλ©΄ 1~N κΉμ§μ νλ ¬ μ°μ°μ μ΅μκ°μ ꡬν μ μλ€.
-
νΌμ μκ°ν λ dpλ‘ λλμ΄ λ€κΈ°λ νμ§λ§ μ΄λ»κ² νμ΄μΌ ν μ§ κ°μ΄ μ€μ§ μμλ€. ν΄λΉ λ¬Έμ λ₯Ό νμ΄νλ λ°©μμ΄ μ΄ν΄λ₯Ό νλκΉ λλμΌ μ μμμ§λ§ 체λμ΄ νμν κ² κ°λ€.
μ½λ
#include <iostream>
#define endl '\n'
using namespace std;
int N;
int matInfo[501][2];
int dp[501][501];
void Input(){
cin >> N;
for(int i=1; i<=N; i++) {
cin >> matInfo[i][0] >> matInfo[i][1];
}
}
void Solution(){
for(int i=1; i<N; i++){
for(int j=1; i+j<=N; j++){
dp[j][i+j] = INT32_MAX;
for(int mid=j; mid<=i+j; mid++){
dp[j][i+j] = min(dp[j][i+j], dp[j][mid] + dp[mid+1][i+j] + matInfo[j][0]*matInfo[mid][1]*matInfo[i+j][1]);
}
}
}
cout << dp[1][N] << endl;
}
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
Input();
Solution();
return 0;
}