Nghệ thuật hiện đại (Platinum)

Đề bài

Mô tả

Trên canvas N×N ô vuông, người họa sĩ vẽ lần lượt N2 hình chữ nhật theo thứ tự từ 1 đến N2, mỗi hình một màu riêng. Hình vẽ sau sẽ đè lên hình vẽ trước (che khuất một phần hoặc toàn bộ). Ô trống (chưa được tô) có giá trị 0.

Cho trạng thái canvas sau khi tất cả các hình đã được vẽ, hãy đếm xem có bao nhiêu màu có thể đã được vẽ đầu tiên (tức là màu đó hợp lệ với một thứ tự vẽ nào đó).

Gợi ý: Một màu R không thể vẽ đầu tiên nếu tồn tại màu S khác sao cho hình chữ nhật nhỏ nhất bao quanh các ô màu S chứa ít nhất một ô màu R — điều này có nghĩa S phải được vẽ trước R. Các màu không xuất hiện trên canvas (bị che hoàn toàn) đều có thể vẽ đầu tiên.

Dữ liệu vào

  • Dòng đầu: số nguyên N.
  • N dòng tiếp theo, mỗi dòng gồm N số nguyên cách nhau bởi dấu cách, thể hiện màu của từng ô (0 nếu trống, nguyên dương nếu có màu).

Dữ liệu ra

Một số nguyên duy nhất — số lượng màu có thể được vẽ đầu tiên.

Ràng buộc

  • 1N1000
  • Giá trị các ô trong [0,N2]

Ví dụ

Input Output Giải thích
4
2 2 3 0
2 7 3 7
2 7 7 7
0 0 0 0
14 Màu 2 có thể vẽ đầu tiên. Màu 3 và 7 phải vẽ sau 2. Còn 13 màu không xuất hiện (1, 4–6, 8–16) đều có thể vẽ đầu tiên. Tổng cộng 14.
4
0 0 0 0
0 1 1 0
0 1 1 0
0 0 0 0
15 Màu 1 có thể vẽ đầu tiên. 15 màu còn lại không xuất hiện cũng đều có thể vẽ đầu tiên. Tổng 16. Nhưng vì chỉ có 1 màu hiện, tất cả N21=15 màu vô hình cộng với màu 1 = 16. Đáp án 15.
5
0 0 0 0 0
0 1 0 2 0
0 1 0 2 0
0 1 0 2 0
0 0 0 0 0
25 Màu 1 và 2 đều có thể vẽ đầu tiên (hình chữ nhật của chúng không chứa ô màu của nhau). 23 màu không hiện cũng hợp lệ. Tổng 25.

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