#176. Nhân chuỗi ma trận (MCMULTI)

Bộ nhớ: 512 MiB Thời gian: 1000 ms Nhập/xuất từ luồng chuẩn
Kiểu bài: Thông thường Kiểu chấm: So sánh văn bản
Đưa lên bởi: Trùm CUỐI

Đề bài

Cho một dãy gồm N ma trận A_1, A_2, \ldots, A_N . Kích thước của ma trận A_i p_{i-1} \times p_i . Tìm số phép nhân vô hướng tối thiểu cần thiết để tính tích của các ma trận này. Phép nhân ma trận có tính kết hợp, ví dụ (A_1 A_2)A_3 = A_1(A_2 A_3) , nhưng số phép toán có thể khác nhau.

Biết rằng để nhân một ma trận kích thước a \times b với một ma trận kích thước b \times c , cần a \times b \times c phép nhân vô hướng.

Dữ liệu:

  • Dòng đầu tiên chứa số nguyên N .
  • Dòng thứ hai chứa N+1 số nguyên p_0, p_1, \ldots, p_N .

Kết quả: In ra một số nguyên duy nhất là số phép nhân vô hướng tối thiểu.

Ví dụ:

Dữ liệu:

3
10 20 30 40

Kết quả:

18000

Giải thích: Các ma trận là A_1 (10 \times 20) , A_2 (20 \times 30) , A_3 (30 \times 40) .

  • Cách 1: (A_1 A_2)A_3 . Chi phí = (10 \times 20 \times 30) + (10 \times 30 \times 40) = 6000 + 12000 = 18000 .
  • Cách 2: A_1 (A_2 A_3) . Chi phí = (20 \times 30 \times 40) + (10 \times 20 \times 40) = 24000 + 8000 = 32000 .

Chi phí tối thiểu là 18000.

Giới hạn:

  • 1 \le N \le 100
  • 1 \le p_i \le 500