首页 > 其他 > 详细

18.滑雪 记忆化搜索

时间:2020-07-05 21:50:50      阅读:51      评论:0      收藏:0      [点我收藏+]

技术分享图片

 技术分享图片

 技术分享图片

按照第一步往哪滑分

分成四类

技术分享图片

 1 #include <bits/stdc++.h>
 2 using namespace std;
 3 const int N = 310;
 4 int h[N][N]; //h表示每个点的高度 
 5 int f[N][N]; //动态规划数组 
 6 int n, m;
 7 int dx[4] = {-1, 0, 1, 0};
 8 int dy[4] = {0, 1, 0, -1}; //四个方向
 9 int dp(int x, int y) { //dp(i, j)是求出这个状态然后返回
10     int &v = f[x][y]; //引用 
11     if (v != -1) { //表示已经被算过了 
12         return v;
13     }
14     v = 1; //最差最差可以走当前这一个点 
15     for (int i = 0; i < 4; i++) {
16         int a = x + dx[i];
17         int b = y + dy[i];
18         if(a >= 1 && a <= n && b >= 1 && b <= m && h[a][b] < h[x][y]) {
19             v = max(v, dp(a, b) + 1);
20         }
21     }
22     return v;
23 }
24 int main() {
25     cin >> n >> m;
26     for (int i = 1; i <= n; i++) {
27         for (int j = 1; j <= m; j++) {
28             cin >> h[i][j];
29         }
30     }
31     memset(f, -1, sizeof f); //表示每个状态都没有被算过 
32     int res = -1; //最大值 
33     for (int i = 1; i <= n; i++) {
34         for (int j = 1; j <= m; j++) {
35             res = max(res, dp(i, j));
36         }
37     }
38     cout << res << endl;
39     return 0;
40 }

 

18.滑雪 记忆化搜索

原文:https://www.cnblogs.com/fx1998/p/12837478.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!