trang chủ / đề bài / knapbitmask

Gán Công Việc Bitmask

Đề bài

Mô tả

Cho một ma trận chi phí C kích thước N×N. C[i][j] là chi phí khi gán công nhân i làm công việc j.

Bạn phải gán mỗi công nhân đúng một công việc và mỗi công việc được đúng một công nhân. Hãy tìm tổng chi phí nhỏ nhất.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên N.
  • N dòng tiếp theo, mỗi dòng chứa N số nguyên. Dòng i+1 chứa C[i][0],C[i][1],…,C[i][N−1].

Dữ liệu ra

In ra một số nguyên duy nhất: tổng chi phí nhỏ nhất.

Ràng buộc

  • 1≤N≤16
  • 1≤C[i][j]≤109

Ví dụ

Input Output Giải thích
3
3 5 2
8 1 6
4 9 7
7 Gán công nhân 0→ việc 2, 1→1, 2→0: chi phí 2+1+4=7.
2
1 2
3 4
5 Gán 0→0 và 1→1: chi phí 1+4=5.

Ghi chú

Đây là bài toán gán (assignment problem) phiên bản nhỏ: có thể giải bằng bitmask DP với độ phức tạp O(N·2N).

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