trang chủ / đề bài / dhbb13_ctab

Biến đổi bảng số

Đề bài

Mô tả

Cho bảng số A gồm m hàng và n cột. Các hàng được đánh chỉ số từ 1 đến m, từ trên xuống dưới, các cột được đánh chỉ số từ 1 đến n, từ trái sang phải. Ô nằm ở hàng i, cột j được gọi là ô (i,j) và chứa số 0 hoặc số 1. Trên bảng số có một số ô được đánh dấu. Xét hai loại phép biến đổi sau:

  • Cho phép đổi chỗ hai số đặt trong hai ô ở thế mã giao chân (hai ô ở đỉnh đối diện trên đường chéo của hình chữ nhật kích thước 2×3 hoặc 3×2);
  • Chọn một ô được đánh dấu và thay đổi giá trị ở ô đó, cụ thể: nếu ô đang chứa số 0 thì đổi thành 1, ngược lại nếu ô đang chứa số 1 thì được đổi thành 0.

Việc đánh dấu gắn với ô chứ không gắn với số: khi đổi chỗ hai số, các ô được đánh dấu vẫn giữ nguyên.

Yêu cầu: Cho bảng số A và những ô được đánh dấu, hãy tính số phép biến đổi ít nhất để biến đổi bảng về toàn số 0 hoặc toàn số 1.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên dương m,n;
  • m dòng sau, mỗi dòng chứa n số (cách nhau bởi dấu cách) mô tả bảng số A, cụ thể: ô chứa số 0 không được đánh dấu ghi số 0, ô chứa số 1 không được đánh dấu ghi số 1, ô chứa số 0 được đánh dấu ghi số 2, ô chứa số 1 được đánh dấu ghi số 3.

Dữ liệu ra

Gồm một dòng, chứa một số nguyên là số phép biến đổi ít nhất để biến đổi bảng về toàn số 0 hoặc toàn số 1. Nếu không tồn tại cách biến đổi thỏa mãn ghi −1.

Ràng buộc

  • m,n≥1, m×n≤106.

Subtasks

  • Các test ứng với 40% số điểm có m×n≤16.
  • Các test khác ứng với 30% số điểm có m,n≤20.
  • Các test còn lại ứng với 30% số điểm có m×n≤106.

Ví dụ

Input Output Giải thích
2 3
0 0 1
2 0 0
2 Đổi chỗ hai số ở ô (1,3) và ô (2,1) (thế mã giao chân), số 1 chuyển vào ô được đánh dấu (2,1); sau đó đổi giá trị ô (2,1) thành 0. Bảng trở thành toàn số 0.
3 4
1 1 0 1
3 1 1 0
1 0 1 2
10 Ví dụ bổ sung. Có hai ô được đánh dấu: (2,1) chứa số 1 và (3,4) chứa số 0. Biến bảng về toàn số 1: bốn số 0 ở các ô (1,3), (2,4), (3,2), (3,4) lần lượt cần 1,3,2,0 lần đổi chỗ để tới một ô được đánh dấu và 1 lần đổi giá trị mỗi số, tổng 10. Biến về toàn số 0 cần 24 phép.
3 3
2 0 1
0 0 0
1 0 0
6 Ví dụ bổ sung. Ô (2,2) không ở thế mã giao chân với ô nào nên không thể thay đổi, vì vậy chỉ có thể biến bảng về toàn số 0. Hai số 1 ở ô (1,3) và (3,1) mỗi số cần 2 lần đổi chỗ để tới ô (1,1) và 1 lần đổi giá trị.

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