File tree Expand file tree Collapse file tree 1 file changed +40
-0
lines changed
Expand file tree Collapse file tree 1 file changed +40
-0
lines changed Original file line number Diff line number Diff line change 1+ ``` java
2+ import java.io.* ;
3+ import java.util.* ;
4+
5+ public class Main {
6+ static BufferedReader br = new BufferedReader (new InputStreamReader (System . in));
7+ static BufferedWriter bw = new BufferedWriter (new OutputStreamWriter (System . out));
8+ static StringTokenizer st;
9+ static int N ;
10+ static int [] rows;
11+ static int [] cols;
12+ static int [][] dp;
13+
14+ public static void main (String [] args ) throws IOException {
15+ N = Integer . parseInt(br. readLine());
16+ rows = new int [N + 1 ];
17+ cols = new int [N + 1 ];
18+ for (int i = 1 ; i <= N ; i++ ) {
19+ st = new StringTokenizer (br. readLine());
20+ rows[i] = Integer . parseInt(st. nextToken());
21+ cols[i] = Integer . parseInt(st. nextToken());
22+ }
23+ dp = new int [N + 1 ][N + 1 ];
24+
25+ for (int len = 2 ; len <= N ; len++ ) { // 구간
26+ for (int i = 1 ; i <= N - len + 1 ; i++ ) { // 시작점
27+ int j = i + len - 1 ; // 끝점
28+ dp[i][j] = Integer . MAX_VALUE ;
29+
30+ for (int k = i; k < j; k++ ) { // 분할지점
31+ int num = dp[i][k] + dp[k+ 1 ][j] + rows[i]* cols[k]* cols[j];
32+ dp[i][j] = Math . min(dp[i][j], num);
33+ }
34+ }
35+ }
36+ bw. write(dp[1 ][N ] + " \n " );
37+ bw. close();
38+ }
39+ }
40+ ```
You can’t perform that action at this time.
0 commit comments