• poj 1088 滑雪 dp


    dp[i][j]表示从i,j开始的最长路径,记忆化搜索一下。

    #include <cstdio>
    #include <cstring>
    #include <algorithm>
    using namespace std;
    #define maxn 120
    int dp[maxn][maxn],map[maxn][maxn];
    int r,c;
    int dfs(int i,int j)
    {
        if(dp[i][j]!=-1) return dp[i][j];
        else
        {
            int ans=1;
            if(j+1<=c&&map[i][j]>map[i][j+1]) ans=max(ans,dfs(i,j+1)+1);
            if(j-1>=1&&map[i][j]>map[i][j-1]) ans=max(ans,dfs(i,j-1)+1);
            if(i+1<=r&&map[i][j]>map[i+1][j]) ans=max(ans,dfs(i+1,j)+1);
            if(i-1>=1&&map[i][j]>map[i-1][j]) ans=max(ans,dfs(i-1,j)+1);
            dp[i][j]=ans;
            return ans;
        }
    }
    int main()
    {
        int i,j;
        while(scanf("%d%d",&r,&c)!=EOF)
        {
            for(i=1;i<=r;i++)
                for(j=1;j<=c;j++)
                    scanf("%d",&map[i][j]);
            memset(dp,-1,sizeof(dp));
            int Max=-1;
            for(i=1;i<=r;i++)
                for(j=1;j<=c;j++)
                {
                    if(dp[i][j]==-1)
                        dp[i][j]=dfs(i,j);
                    Max=max(dp[i][j],Max);
                }
            printf("%d
    ",Max);
        }
        return 0;
    }
    View Code
  • 相关阅读:
    转载:configure生成的文件(1.5.3)《深入理解Nginx》(陶辉)
    现场管理
    02 表扫描
    01 成本的含义
    16 计划稳定性与控制
    14 事务处理
    13 SELECT 以外的内容
    12 索引
    11 半联结 & 反联结
    08 分析函数
  • 原文地址:https://www.cnblogs.com/vermouth/p/3840383.html
Copyright © 2020-2023  润新知