Xoay cột

Đề bài

Mô tả

Cho một ma trận n×m gồm các số nguyên dương ai,j.

Trong một thao tác, bạn có thể chọn một cột bất kỳ và dịch vòng các phần tử trong cột đó (phần tử ở hàng cuối quay lên hàng đầu, các phần tử còn lại dịch xuống một hàng). Bạn được phép thực hiện thao tác này bao nhiêu lần tuỳ ý (kể cả không thực hiện) và có thể dịch một cột nhiều lần.

Sau khi đã hoàn tất các thao tác dịch, với mỗi hàng i, gọi ri là giá trị lớn nhất trên hàng đó của ma trận thu được. Hãy tìm giá trị lớn nhất có thể của tổng r1+r2++rn.

Dữ liệu vào

  • Dòng đầu chứa số nguyên t (1t40) — số bộ dữ liệu.
  • Với mỗi bộ:
    • Dòng đầu chứa hai số nguyên nm (1n4, 1m100).
    • n dòng tiếp theo, mỗi dòng chứa m số nguyên ai,j (1ai,j105).

Dữ liệu ra

In ra t số nguyên trên t dòng — đáp án cho mỗi bộ dữ liệu, theo thứ tự nhập.

Ràng buộc

  • 1t40
  • 1n4
  • 1m100
  • 1ai,j105

Ví dụ

Input Output Giải thích
2
2 3
2 5 7
4 2 4
3 6
4 1 5 2 10 4
8 6 6 4 9 10
5 4 9 5 8 7
12
29
Bộ 1: dịch cột 3 xuống một hàng, ma trận thành 2 5 4 / 4 2 7. Khi đó r1=5, r2=7, tổng =12. Bộ 2: không cần dịch, r1=r2=10, r3=9, tổng =29.
1
4 3
1 1 100
1 3 1
2 100 100
1 3 1
302 Có thể dịch để mỗi hàng đều "nhận" được một giá trị lớn (gồm hai số 100 ở cột 2/3 và số 100, 2 phân bố hợp lý), đạt tổng 302.

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