trang chủ / đề bài / dhbb26_dx24_11_c

Phân lô tài nguyên

Đề bài

Mô tả

Một khu mỏ có N khu vực khai thác xếp thành một hàng ngang. Khu vực thứ i chứa loại tài nguyên được mã hóa bởi số nguyên Ai. Khi nhiều khu vực cùng loại nằm trong một phân khu, công tác quản lý phát sinh thêm chi phí.

Yêu cầu: Cần chia toàn bộ dãy thành đúng P phân khu liên tiếp nhau, mỗi phân khu phải chứa ít nhất một khu vực. Nếu trong một phân khu có c khu vực cùng chứa một loại tài nguyên nào đó thì loại tài nguyên ấy đóng góp c(c−1)/2 vào chi phí của phân khu. Hãy tìm tổng chi phí nhỏ nhất có thể đạt được.

Dữ liệu vào

  • Dòng thứ nhất chứa hai số nguyên N và P.
  • Dòng thứ hai chứa N số nguyên; số thứ i là giá trị Ai của khu vực thứ i.

Dữ liệu ra

Một số nguyên duy nhất là chi phí nhỏ nhất có thể đạt được.

Ràng buộc

  • 1≤N≤50000.
  • 1≤P≤min(20,N).
  • 1≤Ai≤N.

Subtasks

  • Subtask 1 (15% số điểm): N≤100, P≤10.
  • Subtask 2 (15% số điểm): N≤1000.
  • Subtask 3 (20% số điểm): Mảng A chỉ chứa các giá trị 1 hoặc 2.
  • Subtask 4 (20% số điểm): P=2.
  • Subtask 5 (30% số điểm): Không có ràng buộc gì thêm.

Ví dụ

Input Output Giải thích
7 3
2 5 2 5 2 5 2
1 Một cách chia tối ưu là [2,5]∣[2,5]∣[2,5,2]. Phân khu thứ nhất và thứ hai có chi phí 0; phân khu thứ ba có hai khu vực cùng chứa tài nguyên 2 nên chi phí 1. Tổng chi phí là 0+0+1=1.
7 2
1 1 2 2 1 3 3
2 Chia thành [1,1,2]∣[2,1,3,3]: mỗi phân khu có đúng một cặp trùng nhau.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0