Problem hidden
|This problem was hidden by Editorial Board member probably because it has incorrect language|version or invalid test data, or description of the problem is not clear.|

MATRIXMUL - Nhân ma trận

Để nhân hai ma trận A cấp m×n và B cấp n×p ta mất m.n.p phép nhân. Phép nhân ma trận không có tính chất giao hoán nhưng có tính chất kết hợp, tức là (A.B).C = A.(B.C). Như vậy để nhân một dãy các ma trận liên tiếp (ma trận sau có số hàng bằng số cột của ma trận trước) chúng ta có thể thực hiện theo thứ tự khác nhau và do đó số phép nhân cần tính cũng khác nhau.

Chẳng hạn ta có 3 ma trận A, B, C có số chiều lần lượt là: 4×3, 3×5, 5×3.

  • Nếu thực hiện theo thứ tự (A.B).C thì số phép nhân cần tính là: 4.3.5 + 4.5.3 = 120
  • Nếu thực hiện theo thứ tự A.(B.C) thì số phép nhân cần tính là : 3.5.3 + 4.3.3 = 81

Yêu cầu: Cho dãy n ma trận (ma trận sau có số dòng bằng số cột của ma trận trước, theo thứ tự). Hãy tính số phép nhân tối thiểu cần tính để thực hiện nhân dãy các ma trận đó.

Dữ liệu vào:

  • Dòng đầu chứa số nguyên dương n.
  • Dòng sau chứa n + 1 số nguyên dương a1, a2, …, an+1 (ma trận thứ i có ai dòng và ai + 1 cột).

Dữ liệu ra:

Một số nguyên duy nhất là số phép nhân ít nhất cần tính.

Ví dụ:

Dữ liệu vào:
3
4 3 5 3

Dữ liệu ra: 81

Giới hạn: 1 ≤ n ≤ 500; 1 ≤ ai ≤ 1000 .


Được gửi lên bởi:noname00.pas
Ngày:2018-11-02
Thời gian chạy:0.100s-0.200s
Giới hạn mã nguồn:50000B
Memory limit:1536MB
Cluster: Cube (Intel G860)
Ngôn ngữ cho phép:C-CLANG C CSHARP C++ 4.3.2 CPP CPP14 CPP14-CLANG C99 JAVA PAS-FPC PYTHON PYTHON3
Nguồn bài:Bài tập thực hành Chuyên Sơn La

© Spoj.com. All Rights Reserved. Spoj uses Sphere Engine™ © by Sphere Research Labs.