Hướng dẫn giải của Xiên que của Suika


Chỉ dùng lời giải này khi không có ý tưởng, và đừng copy-paste code từ lời giải này. Hãy tôn trọng người ra đề và người viết lời giải.
Nộp một lời giải chính thức trước khi tự giải là một hành động có thể bị ban.

Nén các số trong mảng về 1 đến ~n~. Khi đó công thức quy hoạch động là ~dp(i, j)~ mang ý nghĩa số lượng dãy con kết thúc bằng số ~i~ và có độ dài ~j~.

Khi tính đến ~dp(a_i, j)~ bất kì, dễ thấy sẽ tăng một giá trị là ~f(j - 1)~ với ~f(k) = \sum_{i=1}^{n}dp(i, k)~. Tuy nhiên có một vấn đề là nếu ~a_i~ đã xuất hiện trước đó thì sẽ tạo ra các dãy con bị trùng nên khi đó cần trừ đi các giá trị bị trùng là ~dp(a_i, j)~ ở lần gần nhất xét đến giá trị ~a_i~.

Đáp án của bài toán là ~\sum_{i=1}^{n}dp(i, m)~.