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

Ma trận nhị phân lớn nhất

Đề bài

Mô tả

Cho một ma trận vuông kích thước n×n ban đầu gồm toàn số 0. Bạn cần đặt đúng k số 1 vào ma trận sao cho ma trận thu được:

  • Đối xứng qua đường chéo chính (đường chéo đi từ góc trên bên trái xuống góc dưới bên phải), nghĩa là ô hàng i cột j bằng ô hàng j cột i với mọi i,j.
  • Lớn nhất theo thứ tự từ điển.

Một ma trận được coi là lớn hơn ma trận khác theo thứ tự từ điển nếu tại hàng khác nhau đầu tiên (tính từ trên xuống), ở vị trí khác nhau đầu tiên (tính từ trái sang phải), số trong ma trận thứ nhất lớn hơn số tương ứng trong ma trận thứ hai.

Nếu không tồn tại ma trận thỏa mãn, in ra 1.

Dữ liệu vào

Một dòng gồm hai số nguyên nk.

Dữ liệu ra

Nếu tồn tại đáp án, in ra ma trận kết quả gồm n hàng, mỗi hàng n số cách nhau bởi dấu cách. Ngược lại in ra 1.

Ràng buộc

  • 1n100
  • 0k106

Ví dụ

Input Output Giải thích
2 1 1 0
0 0
Đặt 1 số 1 vào ô góc trên trái để ma trận lớn nhất theo thứ tự từ điển.
3 2 1 0 0
0 1 0
0 0 0
Không thể đặt cả hai số 1 trên hàng đầu vì ô ngoài đường chéo cần đối xứng (tốn 2 số 1 để giữ đối xứng nhưng lại phá tính lớn nhất). Đặt hai số 1 lên đường chéo tại (1,1)(2,2).
2 5 -1 Ma trận 2×2 chỉ chứa được tối đa 4 số 1, không thể đặt 5 số.

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