拜访-动态规划

Posted ranran1203

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拜访-动态规划相关的知识,希望对你有一定的参考价值。

现在有一个城市销售经理,需要从公司出发,去拜访市内的商家,已知他的位置以及商家的位置,但是由于城市道路交通的原因,他只能在左右中选择一个方向,在上下中选择一个方向,现在问他有多少种方案到达商家地址。

给定一个地图map及它的长宽nm,其中1代表经理位置,2代表商家位置,-1代表不能经过的地区,0代表可以经过的地区,请返回方案数,保证一定存在合法路径。保证矩阵的长宽都小于等于10。

测试样例:
[[0,1,0],[2,0,0]],2,3
返回:2


 1 lass Visit {
 2 public:
 3     
 4    
 5     int countPath(vector<vector<int> > map, int n, int m) {
 6         // write code here
 7         int x1,y1;
 8         int x2,y2;
 9         for(int i=0;i<n;i++)
10         {
11             for(int j=0;j<m;j++)
12             {
13                 if(map[i][j]==1)
14                 {
15                     x1=i;
16                     y1=j;
17                 }
18                 if(map[i][j]==2)
19                 {
20                     x2=i;y2=j;
21                 }
22             }
23         }
24         if(x1==x2&&y1==y2)
25             return 0;
26         int xt=x1<x2?1:-1;
27         int yt=y1<y2?1:-1;
28         vector<vector<int>>dp(n,vector<int>(m,1));
29         for(int i=x1+xt;i!=(x2+xt);i+=xt)
30         {
31             dp[i][y1]=map[i][y1]==-1?0:dp[i-xt][y1];
32         }
33         for(int j=y1+yt;j!=(y2+yt);j+=yt)
34         {
35             dp[x1][j]=map[x1][j]==-1?0:dp[x1][j-yt];
36         }
37         for(int i=x1+xt;i!=(x2+xt);i+=xt)
38        {
39             for(int j=y1+yt;j!=(y2+yt);j+=yt)
40             {
41                 dp[i][j]=map[i][j]==-1?0:dp[i-xt][j]+dp[i][j-yt];
42             }
43         }
44         return dp[x2][y2];
45     }
46 };

 

 

矩阵1

    0   0   1   0    0

    0  0    0   0    0

    0  0    0   0    0

    0  0    0   0    0

    0  0    0   2    0

 

dp

   0  0   1  1  1  0

   0  0   1  0  0  0

   0   0   1  0 0  0

   0    0  1  0  0  0

   0   0   1  0  0  0

 dp[i][j]=dp[i-1][j]+dp[i][j-1]

   0  0   1  1  1  0

   0  0   1  2  3  0

   0   0   1 3  6  0

   0    0  1  4 10  0

   0   0   1  5  15  0

以上是关于拜访-动态规划的主要内容,如果未能解决你的问题,请参考以下文章

动态规划题目

详细实例说明+典型案例实现 对动态规划法进行全面分析 | C++

谈网站导航设计的颜色问题

动态 Rstudio 代码片段

是否可以动态编译和执行 C# 代码片段?

动态规划_线性动态规划,区间动态规划