trang chủ / bài tập / 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

  • 1n,m250
  • 1q,p106
  • 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.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