trang chủ / bài tập / pairedup21

Ghép Đôi (Platinum)

Đề bài

Mô tả

N con bò đứng trên một đường thẳng, mỗi con là giống Holstein (H) hoặc Guernsey (G). Mỗi con bò i có:

  • Giống: bi{H,G}
  • Vị trí: xi (các vị trí theo thứ tự tăng dần)
  • Trọng số: yi

Các con bò được ghép đôi theo các quy tắc sau:

  • Mỗi cặp gồm đúng một con Holstein và một con Guernsey.
  • Hai con bò được ghép chỉ khi khoảng cách giữa chúng không vượt quá K: |xhxg|K.
  • Mỗi con bò thuộc đúng một cặp hoặc không được ghép.
  • Cách ghép phải là cực đại: không tồn tại hai con bò chưa được ghép (một Holstein và một Guernsey) mà khoảng cách giữa chúng K.

Cho biết loại bài toán T:

  • Nếu T=1: Tìm tổng trọng số nhỏ nhất của các con bò không được ghép.
  • Nếu T=2: Tìm tổng trọng số lớn nhất của các con bò không được ghép.

Dữ liệu vào

Dòng đầu tiên chứa ba số nguyên T, N, K.

  • N dòng tiếp theo, mỗi dòng chứa bi, xi, yi (theo thứ tự xi tăng dần nghiêm ngặt).

Dữ liệu ra

Một số nguyên duy nhất: tổng trọng số của các con bò không được ghép (nhỏ nhất nếu T=1, lớn nhất nếu T=2).

Ràng buộc

  • 1N5000
  • 1K109
  • 0xi109 (tăng dần nghiêm ngặt)
  • 1yi105
  • T{1,2}

Ví dụ

Input Output Giải thích
2 5 4
G 1 1
H 3 4
G 4 2
H 6 6
H 8 9
16 Ghép cặp H(3) với G(4). Các con không được ghép: G(1)=1, H(6)=6, H(8)=9. Tổng = 16. Cách ghép này cực đại vì G(1) và H(3) cách nhau 2 ≤ 4 nhưng H(3) đã được ghép.
1 5 4
G 1 1
H 3 4
G 4 2
H 6 6
H 8 9
6 Ghép cặp G(1) với H(3) và G(4) với H(8). Con không ghép: H(6)=6. Tổng = 6.
2 10 76
H 1 18
H 18 465
H 25 278
H 30 291
H 36 202
G 45 96
G 60 375
G 93 941
G 96 870
G 98 540
1893 Cách ghép tối ưu để tối đa hóa tổng không ghép.

Ghi chú

  • Trong ví dụ 1 (T=2): Nếu ghép G(1) với H(3) thì còn lại G(4), H(6), H(8) không ghép, tổng = 2+6+9=17, nhưng G(4) và H(6) cách nhau 2 ≤ 4, vi phạm tính cực đại. Do đó đây không phải cách ghép hợp lệ.
  • Trong ví dụ 2 (T=1): Tổng trọng số tất cả bò = 22. Ghép tối ưu để tổng không ghép nhỏ nhất.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0