Binary Matrix

Xem dạng PDF

Gửi bài giải

Điểm: 1,90 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 512M
Input: stdin
Output: stdout

Nguồn bài:
ACM ICPC Hatyai 2012
Dạng bài
Ngôn ngữ cho phép
C, C++, Go, Java, Kotlin, Pascal, PyPy, Python, Rust, Scratch

Cho một ma trận có kích thước ~r * c~, mỗi phần tử có giá trị ~0~ hoặc ~1~. Với mỗi thao tác, bạn có thể đổi giá trị của một phần tử từ ~0~ sang ~1~ và ngược lại. Mục tiêu của bạn là biến đổi ma trận sao cho:

  1. Mỗi hàng đều có số phần tử có giá trị ~1~ bằng nhau
  2. Mỗi cột đều có số phần tử có giá trị ~1~ bằng nhau. Hỏi cần thực hiện tối thiểu bao nhiêu thao tác để đạt được trạng thái này?

Input

Dòng đầu tiên chứa số lượng test ~T~ ~(T \leq 1000)~. Tiếp theo là ~T~ test, mỗi test có dạng như sau:

  • Dòng đầu tiên chưa hai số nguyên ~r~ và ~c~ ~(1 \leq r, c \leq 40)~, với ~r~ là số hàng và ~c~ là số cột của ma trận.
  • M dòng tiếp theo, mỗi dòng chứa ~n~ số nguyên với giá trị ~0~ hoặc ~1~.

Output

Với mỗi test, in ra câu trả lời dưới dạng Case #: R trên một dòng, trong đó, # là số thứ tự của test và R là số thao tác tối thiểu để đạt được trạng thái như yêu cầu. Nếu không thể biến đổi để thỏa mãn yêu cầu thì thay R bằng ~-1~.

Sample Input

3
2 3
111
111
3 3
011
011
011
2 3
001
000

Sample Output

Case 1: 0
Case 2: 3
Case 3: 1

Bình luận

Hãy đọc nội quy trước khi bình luận.


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