zoukankan      html  css  js  c++  java
  • POJ 1088 DP=记忆化搜索

    话说DP=记忆化搜索这句话真不是虚的。

    面对这道题目,题意很简单,但是DP的时候,方向分为四个,这个时候用递推就好难写了,你很难得到当前状态的前一个真实状态,这个时候记忆化搜索就派上用场啦!

    通过对四个方向进行搜索,即可得到当前状态的最优解。

    #include <iostream>
    #include <cstdio>
    using namespace std;
    int date[105][105];
    int dp[105][105];
    int dir[][2]= {{0,1},{0,-1},{1,0},{-1,0}};
    int r,c;
    int dpac(int i,int j)
    {
        if (dp[i][j]>1) return dp[i][j];
        for (int k=0; k<4; k++)
        {
            int nr=i+dir[k][0];
            int nc=j+dir[k][1];
            if (nr<1||nc<1||nr>r||nc>c) continue;
            if (date[i][j]>date[nr][nc])
            {
               dp[nr][nc]=dpac(nr,nc);
               dp[i][j]=max(dp[nr][nc]+1,dp[i][j]);
            }
    
        }
        return dp[i][j];
    }
    int main()
    {
    
        while (scanf("%d %d",&r,&c)!=EOF)
        {
            int i,j,k,p;
            for (i=1; i<=r; i++)
            {
                for (j=1; j<=c; j++)
                {
                    scanf("%d",&date[i][j]);
                    dp[i][j]=1;
                }
            }
            int ans=0;
            for (i=1; i<=r; i++)
            {
                for (j=1; j<=c; j++)
                {
                    int temp=dpac(i,j);
                    if (ans<temp) ans=temp;
                }
            }
            printf("%d
    ",ans);
        }
        return 0;
    }
  • 相关阅读:
    为什么要用getBaseContext()方法代替this?(转)
    如何让EditText不能自动获取焦点(转)
    context和getApplicationContext()的区别
    Idea 破解
    mysql 免安装
    AngularJS
    GC垃圾回收机制
    JVM类加载机制
    线程池
    面试-数据库
  • 原文地址:https://www.cnblogs.com/kkrisen/p/3335638.html
Copyright © 2011-2022 走看看