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

Trò chơi kỳ lạ trên ma trận

Đề bài

Mô tả

Cho ma trận a gồm n hàng và m cột, mỗi phần tử là 0 hoặc 1. Hàng và cột được đánh số từ 1.

Bạn được phép thay một số ô mang giá trị 1 trong ma trận thành 0 (số ô thay là tùy ý, có thể không thay ô nào). Sau khi thay xong, điểm số được tính như sau:

  1. Ban đầu điểm số bằng 0.
  2. Với mỗi cột j, tìm ô mang giá trị 1 nằm cao nhất, tức là hàng i nhỏ nhất thỏa mãn ai,j=1. Nếu cột j không còn ô nào mang giá trị 1 thì bỏ qua cột này.
  3. Xét min(k,ni+1) ô liên tiếp trong cột j tính từ ô vừa tìm được, tức là các hàng i,i+1,,min(n,i+k1), rồi đếm số ô mang giá trị 1 trong đó. Cộng số đếm được vào điểm số.

Hãy tìm điểm số lớn nhất có thể đạt được, và trong tất cả các cách thay đạt được điểm số lớn nhất đó, hãy tìm số ô bị thay ít nhất.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên n, m, k.
  • n dòng tiếp theo, dòng thứ i chứa m số nguyên là các phần tử của hàng thứ i của ma trận. Mỗi số là 0 hoặc 1.

Dữ liệu ra

Một dòng chứa hai số nguyên: điểm số lớn nhất có thể đạt được và số ô cần thay ít nhất để đạt được điểm số đó.

Ràng buộc

  • 1kn100
  • 1m100
  • ai,j{0,1}

Ví dụ

Input Output Giải thích
4 3 2
0 1 0
1 0 1
0 1 0
1 1 1
4 1 Thay a1,2 thành 0. Khi đó cột 1 có ô 1 cao nhất ở hàng 2, cửa sổ gồm hàng 2,3 và cho 1 điểm. Cột 2 có ô 1 cao nhất ở hàng 3, cửa sổ gồm hàng 3,4 và cho 2 điểm. Cột 3 cho 1 điểm tương tự cột 1. Tổng là 4 điểm với 1 ô bị thay. Nếu không thay ô nào thì cột 2 chỉ cho 1 điểm, tổng chỉ là 3.
3 2 1
1 0
0 1
0 0
2 0 k=1 nên mỗi cột luôn cho đúng 1 điểm nếu cột đó còn ít nhất một ô mang giá trị 1. Không cần thay ô nào.

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.46 awk 1.3.4 gcc 16.1.0 csc 6.12.0.200 g++ 16.1.0 g++-themis 16.1.0 g++17 16.1.0 g++20 16.1.0 g++23 16.1.0 clang++ 22.1.6 dmd 2.112.0 dart 3.12.1 gforth 0.7.3 gfortran 12.2.0 go 1.26.3 groovyc 5.0.6 javac 25.0.3 node 26.2.0 kotlinc 2.3.21 sbcl 2.2.9 lua 5.4.8 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.6 pike 8.0 pypy3 7.3.23 python3 3.14.5 racket 8.7 ruby 4.0.5 rustc 1.96.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 tclsh 8.6 bun 1.3.14 deno 2.8.1 v 0.5.1 zig 0.16.0