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

Sắp xếp ghế rạp chiếu phim (bản khó)

Đề bài

Mô tả

Một rạp chiếu phim có n hàng ghế, mỗi hàng có m ghế. Các ghế được đánh số từ 1 đến nm theo thứ tự: hàng k chứa các ghế có chỉ số từ m(k1)+1 đến mk (đánh từ trái sang phải).

nm người (đánh số từ 1 đến nm) cùng vào xem phim. Người thứ i có độ thị lực ai. Mỗi người được xếp đúng một ghế; gọi si là chỉ số ghế xếp cho người i. Phải xếp sao cho người có thị lực kém hơn được ghế có chỉ số nhỏ hơn, tức là với mọi cặp i,jai<aj thì si<sj (nếu ai=aj thì si,sj tùy ý).

Sau khi xếp chỗ xong, lần lượt theo thứ tự 1,2,,nm, từng người sẽ đi vào hàng chứa ghế của mình và đi từ ghế đầu hàng (trái nhất) tới ghế của mình. Trên đường đi, một số ghế có thể đã có người ngồi. Độ bất tiện của một người bằng số ghế đã có người ngồi mà người đó phải đi qua trước khi tới ghế của mình.

Hãy xếp chỗ để tổng độ bất tiện của tất cả nm người là nhỏ nhất.

Dữ liệu vào

Dòng đầu chứa số nguyên t (1t100) — số test.

Với mỗi test:

  • Dòng thứ nhất chứa hai số nguyên n,m (1n,m300).
  • Dòng thứ hai chứa n·m số nguyên a1,a2,,anm (1ai109).

Tổng n·m trên tất cả các test không vượt quá 105.

Dữ liệu ra

Với mỗi test, in ra một số nguyên là tổng độ bất tiện nhỏ nhất có thể đạt được.

Ràng buộc

  • 1t100
  • 1n,m300
  • 1ai109
  • Tổng n·m105

Ví dụ

Input Output Giải thích
7
1 2
1 2
3 2
1 1 2 2 3 3
3 3
3 4 4 1 1 1 1 1 2
2 2
1 1 2 1
4 2
50 50 50 50 3 50 50 50
4 2
6 6 6 6 2 2 9 6
2 9
1 3 3 3 3 3 1 1 3 1 3 1 1 3 3 1 1 3
1
0
4
0
0
0
1
Test 1: chỉ có một cách xếp; người 1 ngồi ghế 1, người 2 ngồi ghế 2, độ bất tiện là 1.
Test 2: do có nhiều người trùng thị lực, có thể xếp sao cho không ai phải đi qua người khác.
2
1 1
5
2 3
1 2 3 1 2 3
0
2
Test 1: chỉ có 1 ghế nên độ bất tiện bằng 0.
Test 2: xếp tối ưu sẽ có tổng độ bất tiện 2.

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