trang chủ / đề bài / noiselvl

Mức tiếng ồn

Đề bài

Mô tả

Thành phố có dạng lưới hình chữ nhật gồm n×m ô. Mỗi ô thuộc một trong ba loại:

  • Ô thường (ký hiệu .): không phát ra tiếng ồn và không cản trở tiếng ồn lan truyền.
  • Nguồn ồn (ký hiệu bằng một chữ cái in hoa từ A đến Z): là nguồn phát tiếng ồn, đồng thời cũng không cản trở tiếng ồn lan truyền.
  • Ô cách âm (ký hiệu *): tiếng ồn không thể đi vào, và những ô này là vật cản đối với sự lan truyền của tiếng ồn.

Một ô mang chữ A phát ra q đơn vị tiếng ồn, ô mang chữ B phát ra 2q đơn vị, và cứ như vậy, ô mang chữ Z phát ra 26q đơn vị.

Khi lan truyền từ nguồn, mỗi lần đi từ một ô sang ô kề cạnh (chung một cạnh), mức tiếng ồn bị chia đôi và làm tròn xuống (lấy phần nguyên của phép chia cho 2). Tiếng ồn lan theo chuỗi các ô kề nhau, không đi qua ô cách âm. Do đó mức tiếng ồn mà một nguồn truyền tới một ô chỉ phụ thuộc vào độ dài đường đi ngắn nhất giữa nguồn và ô đó (tính theo số bước di chuyển giữa các ô kề cạnh, không đi qua ô *). Cụ thể, nếu đường đi ngắn nhất từ nguồn có giá trị phát V đến một ô là d bước, thì mức tiếng ồn từ nguồn đó tại ô là ⌊V/2d⌋ (áp dụng liên tiếp phép chia đôi làm tròn xuống). Nếu không có đường đi từ nguồn đến ô thì nguồn đó không đóng góp gì cho ô.

Mức tiếng ồn tại một ô bằng tổng mức tiếng ồn từ tất cả các nguồn truyền tới ô đó (bản thân ô nguồn cũng nhận đóng góp từ chính nó và từ các nguồn khác).

Hãy đếm số ô có mức tiếng ồn vượt quá ngưỡng cho phép p (tức là lớn hơn p một cách chặt).

Dữ liệu vào

  • Dòng đầu chứa bốn số nguyên n, m, q, p.
  • n dòng tiếp theo, mỗi dòng gồm m ký tự mô tả các ô của thành phố theo định dạng đã nêu.

Dữ liệu ra

In ra một số nguyên: số ô có mức tiếng ồn vượt quá p.

Ràng buộc

  • 1≤n,m≤250
  • 1≤q,p≤106
  • Có thể không có ô nào thuộc một loại bất kỳ.

Ví dụ

Input Output Giải thích
3 3 2 8
B*.
BB*
BBB
4 Mỗi nguồn B phát 2·2=4 đơn vị. Có 4 ô đạt mức tiếng ồn lớn hơn 8 do cộng dồn từ các nguồn B kề nhau.
3 4 5 4
..*B
..**
D...
7 B phát 10, D phát 20. Sau khi cộng dồn tiếng ồn từ hai nguồn (bị các ô * chặn), có 7 ô vượt ngưỡng 4.
3 3 100 140
...
A*.
.B.
3 A phát 100, B phát 200. Có 3 ô có tổng mức tiếng ồn lớn hơn 140.

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.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0