Đường đi và những chú mèo

Đề bài

Mô tả

Cho một bảng gồm n hàng và m cột. Ô ở hàng r, cột c được ký hiệu là (r,c). Một quân cờ xuất phát từ ô (1,1) tại thời điểm 1.

Tại mỗi đơn vị thời gian, từ ô (r,c) quân cờ có thể di chuyển sang một trong bốn ô kề cạnh (r−1,c), (r+1,c), (r,c−1), (r,c+1) (nếu ô đó nằm trong bảng), hoặc đứng yên tại ô hiện tại. Mỗi lần di chuyển (hoặc đứng yên) mất đúng 1 đơn vị thời gian.

Trên bảng có những con mèo xuất hiện và biến mất theo thời gian. Quân cờ không bao giờ được đứng trên ô có mèo. Cụ thể, quân cờ chỉ có thể bước vào một ô nếu con mèo (nếu có) trong ô đó rời đi đúng vào thời điểm quân cờ bắt đầu bước từ ô kề bên, và trong suốt thời gian quân cờ ở trong ô thì không có con mèo nào xuất hiện tại ô đó.

Có q sự kiện, cho theo thứ tự thời gian tăng dần. Mỗi sự kiện có một trong ba dạng, kèm thời điểm t:

  • 1 x y t: hỏi số cách để quân cờ đến được ô (x,y) tại đúng thời điểm t. Đảm bảo tại thời điểm t không có mèo trong ô (x,y).
  • 2 x y t: tại thời điểm t một con mèo xuất hiện trong ô (x,y). Đảm bảo trước đó không có mèo nào trong ô này.
  • 3 x y t: tại thời điểm t con mèo trong ô (x,y) rời đi. Đảm bảo trước đó có mèo trong ô này.

Hai cách di chuyển được xem là khác nhau nếu tồn tại ít nhất một thời điểm trong khoảng từ 1 đến t mà vị trí quân cờ ở hai cách là khác nhau. Trong hành trình, quân cờ được phép đi qua ô (1,1) và ô (x,y) nhiều lần.

Với mỗi truy vấn dạng 1, hãy in ra số cách tương ứng theo modulo 109+7. Trả lời các truy vấn theo đúng thứ tự chúng xuất hiện.

Dữ liệu vào

  • Dòng đầu chứa ba số nguyên dương n, m, q.
  • q dòng tiếp theo, mỗi dòng chứa bốn số nguyên tp, x, y, t mô tả một sự kiện.

Dữ liệu ra

Với mỗi truy vấn dạng tp=1, in ra trên một dòng số cách đến ô (x,y) tại thời điểm t, theo modulo 109+7.

Ràng buộc

  • 1≤n·m≤20
  • 1≤q≤10000
  • 1≤tp≤3, 1≤x≤n, 1≤y≤m, 2≤t≤109
  • Các sự kiện cho theo thứ tự thời gian tăng ngặt (ti<ti+1).

Ví dụ

Input Output Giải thích
3 3 3
2 2 2 2
1 3 3 5
1 3 3 7
2
42
Một con mèo xuất hiện ở ô (2,2) từ thời điểm 2. Có 2 cách đến (3,3) tại thời điểm 5, và 42 cách tại thời điểm 7.
1 3 3
2 1 2 3
3 1 2 5
1 1 1 7
5 Bảng 1×3. Mèo ở ô (1,2) trong khoảng thời gian [3,5). Có 5 cách quay về (1,1) tại thời điểm 7.
4 5 5
2 2 5 3
2 2 4 6
3 2 4 9
1 4 4 13
1 4 4 15
490902
10598759
Hai con mèo lần lượt xuất hiện và rời đi; hai truy vấn hỏi số cách đến ô (4,4).

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