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

Thoát khỏi khu rừng

Đề bài

Mô tả

Khu rừng được mô tả bằng một lưới r hàng và c cột. Mỗi ô hoặc là một cái cây (không ai đi vào được), hoặc là ô trống. Một ô trống có thể chứa không hoặc nhiều người chơi khác. Có đúng một ô được đánh dấu là lối ra.

Bạn đang đứng ở một ô trống cho trước. Trong mỗi lượt, bạn được làm đúng một trong các việc sau:

  • Đứng yên.
  • Đi sang một trong bốn ô kề cạnh, với điều kiện ô đó không phải là cây.
  • Nếu bạn đang đứng ở ô lối ra, bạn có thể rời khỏi khu rừng. Chỉ bạn mới được làm việc này, những người chơi khác không bao giờ rời rừng.

Sau mỗi lượt đi của bạn, tất cả những người chơi khác đồng thời thực hiện một lượt đi của họ (đứng yên, hoặc sang một ô kề cạnh không phải cây).

Nếu tại một thời điểm bạn và t>0 người chơi khác cùng đứng trên một ô thì sẽ xảy ra đúng t cuộc chạm trán, sau đó cả t người đó rời khỏi khu rừng. Ngay khi bạn rời khỏi khu rừng thì không còn cuộc chạm trán nào xảy ra nữa, kể cả khi ngay sau đó có người đi tới ô lối ra.

Trước khi bắt đầu, bạn phải công bố toàn bộ dãy nước đi của mình và sau đó đi đúng theo dãy đó. Vì vậy mọi người chơi khác đều biết trước lộ trình của bạn, và ai có khả năng chạm trán với bạn thì chắc chắn sẽ làm điều đó; những người không thể chạm trán sẽ đứng yên.

Hãy tìm số cuộc chạm trán nhỏ nhất mà bạn phải trải qua, nếu bạn chọn dãy nước đi tối ưu. Lưu ý bạn không cần phải đi ít bước nhất.

Dữ liệu vào

  • Dòng đầu chứa hai số nguyên rc.
  • r dòng tiếp theo, mỗi dòng chứa c ký tự mô tả một hàng của lưới:
    • T: ô có cây.
    • S: ô trống, là vị trí xuất phát của bạn.
    • E: ô trống, là lối ra.
    • Chữ số 09: ô trống đang có đúng số người chơi khác bằng chữ số đó.

Dữ liệu ra

Một số nguyên duy nhất là số cuộc chạm trán nhỏ nhất mà bạn phải trải qua.

Ràng buộc

  • 1r,c1000
  • Có đúng một ký tự S và đúng một ký tự E trong lưới.
  • Luôn tồn tại đường đi từ ô xuất phát tới ô lối ra.

Ví dụ

Input Output Giải thích
5 7
000E0T3
T0TT0T0
010T0T0
2T0T0T0
0T0S000
3 Bạn cần ít nhất 6 bước để tới lối ra. Người ở hàng 3 cột 2 cách lối ra 4 bước và nhóm 2 người ở hàng 4 cột 1 cách lối ra 6 bước, cả ba đều kịp chặn bạn. Nhóm 3 người ở hàng 1 cột 7 cách lối ra 11 bước nên không thể chặn.
1 4
SE23
2 Bạn chỉ cần 1 bước là ra khỏi rừng. Nhóm 2 người ở ô thứ ba cách lối ra 1 bước nên kịp chặn bạn ngay tại ô lối ra. Nhóm 3 người ở ô thứ tư cách lối ra 2 bước nên tới muộn, và lúc đó bạn đã rời rừng.
1 10
9T9TSET9T9
0 Hai cái cây kề hai bên chặn kín đoạn chứa SE, nên không ai tiếp cận được bạn.

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.400 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.2 gforth 0.7.3 gfortran 12.2.0 go 1.27.0 groovyc 5.1.1 javac 25.0.4 node 26.8.1 julia 1.12.7 kotlinc 2.4.10 lean 4.33.1 sbcl 2.2.9 lua 5.4.9 nim 2.2.10 fpc 3.2.2 fpc-themis 3.2.2 perl 5.36.0 php 8.5.10 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.14.7 racket 8.7 ruby 4.0.6 rustc 1.98.0 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.3.3 tclsh 8.6 bun 1.4.0 deno 2.9.6 v 0.5.2 zig 0.16.0