zoukankan      html  css  js  c++  java
  • 18.滑雪 记忆化搜索

     

     

    按照第一步往哪滑分

    分成四类

     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 }
  • 相关阅读:
    AFNetWorking网络库教程
    安卓教程
    HTML5学习教程
    PHP学习教程汇总
    关于cocos2d-x 诸类的详解
    cocos2d-x 学习资料(很全)
    关于IOS开发知识的总结
    叶子效果
    ios后台下载
    ios中webservice报文的拼接
  • 原文地址:https://www.cnblogs.com/fx1998/p/12837478.html
Copyright © 2011-2022 走看看