码迷,mamicode.com
首页 > 其他好文 > 详细

576. Out of Boundary Paths

时间:2017-11-23 08:33:29      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:after   star   for   路径   number   思路   art   div   范围   

There is an m by n grid with a ball. Given the start coordinate (i,j) of the ball, you can move the ball to adjacent cell or cross the grid boundary in four directions (up, down, left, right). However, you can at most move N times. Find out the number of paths to move the ball out of grid boundary. The answer may be very large, return it after mod 109 + 7.

就是从一个地点出发,N步之内出范围的路径有哪些,格子可以重复走,所以用步数来限制多次走来是不同路径

思路是用dp[k][r][jc代表第k步从r,c出发的路径数,动态方程:

dp[k][r][c] = (((r==0)?1:dp[k-1][r-1][c]%num)+((r==m-1)?1:dp[k-1][r+1][c]%num)+((c==0)?1:dp[k-1][r][c-1]%num)+((c==n-1)?1:dp[k-1][r][c+1]%num))%num;
public int findPaths(int m, int n, int N, int i, int j) {
        int num = 1000000007;
        long[][][] dp = new long[N+1][m][n];
        for (int k = 1;k < N+1;k++)
        {
            for (int r = 0; r < m; r++) {
                for (int c = 0; c < n; c++) {
                    dp[k][r][c] = (((r==0)?1:dp[k-1][r-1][c]%num)+((r==m-1)?1:dp[k-1][r+1][c]%num)+((c==0)?1:dp[k-1][r][c-1]%num)+((c==n-1)?1:dp[k-1][r][c+1]%num))%num;
                }
            }
        }
        return (int)dp[N][i][j];
    }

 

576. Out of Boundary Paths

标签:after   star   for   路径   number   思路   art   div   范围   

原文地址:http://www.cnblogs.com/stAr-1/p/7881429.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!