trang chủ / đề bài / serejatab

Sereja và Bảng

Đề bài

Mô tả

Cho một bảng nhị phân kích thước n×m, mỗi ô chứa một giá trị 0 hoặc 1. Bảng được gọi là tốt nếu mọi thành phần liên thông gồm các ô cùng giá trị đều tạo thành một hình chữ nhật đặc (các cạnh song song với cạnh bảng và mọi ô bên trong đều thuộc thành phần).

Hai ô được coi là kề nhau nếu chúng nằm cạnh nhau trong cùng một hàng hoặc cùng một cột.

Bạn được phép thay đổi giá trị của không quá k ô (đổi 0 thành 1 hoặc ngược lại). Hãy xác định số ô tối thiểu cần thay đổi để bảng trở thành bảng tốt, hoặc cho biết điều đó là không thể.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • n dòng tiếp theo, mỗi dòng chứa m số nguyên ai,j∈{0,1} mô tả bảng.

Dữ liệu ra

In ra một số nguyên — số ô tối thiểu phải thay đổi để bảng trở thành bảng tốt, hoặc −1 nếu không thể thực hiện được với không quá k thay đổi.

Ràng buộc

  • 1≤n,m≤100
  • 1≤k≤10
  • ai,j∈{0,1}

Ví dụ

Input Output Giải thích
3 4 1
1 0 0 1
0 1 1 0
1 0 0 1
0 Bảng đã là bảng tốt: các hàng xen kẽ giữa hai mẫu bù nhau, mỗi thành phần liên thông là một ô riêng lẻ (hình chữ nhật 1×1).
5 5 2
1 1 1 1 1
1 1 1 1 1
1 1 0 1 1
1 1 1 1 1
1 1 1 1 1
1 Đổi ô (3,3) từ 0 thành 1 cho ra bảng toàn 1 — hợp lệ.
3 4 1
1 0 0 0
0 1 1 1
1 1 1 0
-1 Không tồn tại cách đổi không quá 1 ô để bảng trở nên tố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.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