1234567891011121314151617181920212223242526 |
- const MOD int = 1000000007
- var dy = []int{0, 1, 0, -1}
- var dx = []int{1, 0, -1, 0}
- func findPaths(m int, n int, N int, i int, j int) int {
- var dp [50][50]int
- for k := 0; k < N; k++ {
- var nxt [50][50]int
- for y := 0; y < m; y++ {
- for x := 0; x < n; x++ {
- for d := 0; d < 4; d++ {
- ny, nx := y+dy[d], x+dx[d]
- if ny == -1 || ny == m || nx == -1 || nx == n {
- nxt[y][x]++
- } else {
- nxt[y][x] = (nxt[y][x] + dp[ny][nx]) % MOD
- }
- }
- }
- }
- dp = nxt
- }
- return dp[i][j]
- }
|