zoukankan      html  css  js  c++  java
  • 题解 P1434 【滑雪】

    题目链接

    此题运用功能强大的 ~~暴力搜索~~

     记忆化搜索才是重点!!!

    然而,这是一道经典的DP问题

     如果我们用$dis[i][j]$来表示坐标为$(i,j)$时的高度

     $cnt[i][j]$ 是我们的记忆化数组

    在合法的前提下,就有状态转移方程:

     $dis[i][j]=max(dis[i-1][j],dis[i][j-1],dis[i+1][j],dis[i][j+1])$

    好啦,直接上代码吧:其实挺暴力:

     $2^{33……}$

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    using namespace std;//头文件不说啥
    int dis[100][100];
    int cnt[100][100];
    int row,col;//行列数
    inline int DP(int i, int j)//状态转移
    {
         int max1=0;
        
        if(cnt[i][j]>0)
            return cnt[i][j];//记忆化,如果被搜过,跳就好
        
        //判断dis[i][j-1]是否合法
        if(j-1>=0)//边界条件
          if(dis[i][j]>dis[i][j-1])//转移条件
            if(max1<DP(i,j-1))
              max1=DP(i,j-1);
        
        //判断dis[i][j+1]是否合法
        if(j+1<=col-1)
          if(dis[i][j]>dis[i][j+1])
            if(max1<DP(i,j+1))
                max1=DP(i,j+1);
        
        //判断dis[i-1][j]是否合法
         if(i-1>=0)
            if(dis[i][j]>dis[i-1][j])
            if(max1<DP(i-1,j))
              max1=DP(i-1,j);
        
        //判断dis[i+1][j]是否合法
        if(i+1<=row-1)
          if(dis[i][j]>dis[i+1][j])
            if(max1<DP(i+1,j))
              max1=DP(i+1,j);
     
        return cnt[i][j]=max1+1;//转移
    }
    int main()
    {
        scanf("%d%d",&row,&col);//输入
         for(int i=0;i<=row-1;i++)
            for(int j=0;j<=col-1;j++)
              scanf("%d",&dis[i][j]);
    
        for(int i=0;i<=row-1;i++)//状态转移
            for(int j=0;j<=col-1;j++)
            DP(i, j);
            
        for(int i=0;i<=row-1;i++)//找最大值
            for(int j=0;j<=col-1;j++)
             if(cnt[0][0]<cnt[i][j])
                cnt[0][0]=cnt[i][j];
    
        printf("%d",cnt[0][0]);//输出
        return 0;//程序拜拜
    }
  • 相关阅读:
    (转)超过 130 个你需要了解的 vim 命令
    ubuntu下解压文件命令大全(转)
    HDU 4681 String
    Linux使用过程中常见问题及其解决方法
    Linux 命令 及 简单操作 学习
    HDU 4666 Hyperspace (最远曼哈顿距离)
    POJ 2049 Finding Nemo
    HDU 4655 Cut Pieces
    <textarea>标签的使用
    数据库插入失败 和回滚
  • 原文地址:https://www.cnblogs.com/arcturus/p/9180154.html
Copyright © 2011-2022 走看看