美文网首页
poj-1088-滑雪-记忆化搜索

poj-1088-滑雪-记忆化搜索

作者: _弓长_大人 | 来源:发表于2017-04-05 16:26 被阅读49次

poj-1088-滑雪
考察点 记忆化搜索

#include<iostream>
#include<cmath>
#include<algorithm>
#include<cstring> 
using namespace std;
int dp[101][101];
int n,m;
int value[101][101]; 
int dfs(int x,int y)
{
    if(dp[x][y]!=-1)
{
    return dp[x][y];
}
int a=1,b=1,c=1,d=1;
if((x-1)>=0)
{
    if(value[x][y]>value[x-1][y])
    {
        a=dfs(x-1,y)+1;
    }
}
if((x+1)<n)
{
    if(value[x][y]>value[x+1][y])
    {
        b=dfs(x+1,y)+1;
    }
}
if((y-1)>=0)
{
    if(value[x][y]>value[x][y-1])
    {
        c=dfs(x,y-1)+1;
    }
}
if((y+1)<m)
{
    if(value[x][y]>value[x][y+1])
    {
        d=dfs(x,y+1)+1;
    }
}
int t=max(a,b);
t=max(t,c);
t=max(t,d);
dp[x][y]=t;
return t;//返回的是以i,j为开始最长的数字 
}
int main()
{
    cin>>n>>m;
    memset(dp,-1,sizeof(dp));
    for(int i=0;i<n;i++)
    for(int j=0;j<m;j++)
    cin>>value[i][j];
    int ma=-1;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            ma=max(ma,dfs(i,j));
        }
    } 
    cout<<ma;
    return 0;
} 

相关文章

  • poj-1088-滑雪-记忆化搜索

    poj-1088-滑雪考察点 记忆化搜索

  • 0-1 knapsack

    递归 注释记忆化搜索 测试用例 背包大小5 耗时 添加记忆化搜索

  • 记忆化搜索

    记忆化搜索的本质特征是:待求解的问题的解就是原问题的子问题的解集的合并。 apparently,这是一个递归的定义...

  • dynamic programming

    本质 : 记忆化搜索避免重复计算 多重循环vs记忆化搜索多重循环:可以不用递归 可以对空间复杂度进行优化 步骤:初...

  • 322零钱兑换问题——记忆化搜索出错

    直接回溯法(超时): 记忆化搜索(出错,草):

  • DFS+记忆化搜索

    dfs 和 bsf 和 回溯回溯是有剪枝的dfshttp://blog.csdn.net/fightforyour...

  • 组合 排列 记忆化搜索

    Java知识点 一 题目列表 其实就是在做深度优先搜索(遍历)遍历保存路径 然后随时检查当前路径是否符合条件 满足...

  • 滑雪dp

    经典的dp题:滑雪-dp记忆化深搜 DP 记忆化深搜(1) 如果只有1个点,结果就是1(2) 如果有两个点,从1-...

  • 2021-03-03

    动态规划所得的推导公式一般是通过记忆化搜索得来的。而记忆化搜索的来源则往往是由于递归需要重复计算的值通过开辟而外空...

  • 2.3 记录结果再利用的“动态规划”

    2.3.1 记忆化搜索与动态规划 1. 01背包问题 //// Created by Nathan on 15/...

网友评论

      本文标题:poj-1088-滑雪-记忆化搜索

      本文链接:https://www.haomeiwen.com/subject/hzcxattx.html