Cho ma trận gồm \(H\) hàng và \(W\) cột. Gọi \((i,j)\) là ô vuông ở hàng thứ \(i\) và cột thứ \(j\).
Với mỗi \(i,j(1\le i\le H,1\le j\le W)\), ô vuông \((i,j)\) được mô tả bởi kí tự \(a_{i,j}\). Nếu \(a_{i,j}=\).
thì ô vuông này trống rỗng, nếu \(a_{i,j}=\) #
thì ô vuông này chứa vật cản.
\(Kaninho\) bắt đầu ở ô vuông \((1,1)\) và muốn đến ô vuông \((H,W)\) bằng việc lặp lại các bước: Đi sang phải hoặc đi xuống dưới ô trống kề với nó.
Tìm số con đường mà \(Kaninho\) có thể đi được từ ô \((1,1)\) đến ô \((H,W)\). Bởi vì đáp án có thể lớn, nên trước khi in ra cần lấy mod \(10^9+7\).
Input
-
Dòng thứ nhất chứa hai số nguyên \(H,W(2\le H,W\le 1000)\)
-
\(H\) dòng tiếp theo, mỗi dòng chứa \(W\) kí tự \(a_{i,1},a_{i,2},...,a_{i,W}(1\le i\le H)\) - thể hiện ma trận \(Kaninho\) cần đi. Biết rằng đề ra luôn đảm bảo các ô \((1,1)\) và \((H,W)\) đều trống.
Output
- In ra đáp án cần tìm.
Bình luận
HINT
Reference AC code | \(O(h*w)\)time | \(O(h*w)\)space | DP-general
Bạn có thể chỉ cần khai báo 1 biến char để nhận kí tự chứ không cần mảng dp 2 chiều đó
Bạn giải thích thêm cho mình phần công thức f[i-1][j]+f[i][j-1] được không ?. Cảm ơn bạn nhé
số bước đến f[i][j] sẽ là tổng của số bước đến f[i-1]j và f[i]j-1
thank kiu:)