Sắp xếp hoán vị
Đề bài
Mô tả
Cho số nguyên dương và một hoán vị của các số từ đến . Mỗi thao tác, ta được chọn một dãy con liên tiếp từ vị trí đến vị trí () và sắp xếp lại dãy con này thành dãy tăng dần, với chi phí là (lấy phần nguyên, ví dụ ). Có thể thực hiện bao nhiêu thao tác tùy ý, các dãy con được chọn ở các thao tác khác nhau có thể giao nhau.
Yêu cầu: Tính tổng chi phí nhỏ nhất để sắp xếp dãy hoán vị đã cho thành dãy tăng dần.
Dữ liệu vào
- Dòng đầu tiên chứa số nguyên dương ().
- Dòng thứ hai chứa số nguyên dương là một hoán vị của các số từ đến .
Dữ liệu ra
In ra chi phí nhỏ nhất để sắp xếp dãy hoán vị đã cho thành dãy tăng dần (in nếu dãy đã tăng dần).
Ràng buộc
- .
- Có số test ứng với số điểm của bài thỏa mãn .
- số test tiếp theo ứng với số điểm của bài thỏa mãn .
- số test tiếp theo ứng với số điểm của bài thỏa mãn .
- số test còn lại ứng với số điểm của bài thỏa mãn .
Ví dụ
| Input | Output | Giải thích |
|---|---|---|
| 5 3 1 4 2 5 |
2 | Chọn dãy con mất chi phí và chuyển thành dãy , sau đó chọn dãy con với chi phí để sắp xếp thành dãy với tổng chi phí là . |
| 8 2 1 4 3 6 5 8 7 |
2 | Ví dụ do bộ chuyển đổi thêm vào. Sắp xếp riêng từng cặp tốn , nhưng sắp xếp cả dãy (độ dài ) chỉ tốn . |
| 8 2 1 3 5 4 6 8 7 |
2 | Ví dụ do bộ chuyển đổi thêm vào. Sắp xếp cả dãy tốn , rẻ hơn sắp xếp riêng ba cặp , , (tốn ), dù dãy con được chọn chứa cả các phần tử đã đúng chỗ. |
Bình luận