• 滑雪


    poj 1088

    题目大意:

    解决:记忆化搜索 dfs

    #include <iostream>
    using namespace std;
    #define  D "%d" 
    #define _S scanf 
    const int N=105;
    int map[105][105];
    int dp[105][105];
    bool vis[105][105];
    int m,n;
    int dx[]={1,-1,0,0};
    int dy[]={0,0,-1,1};
    int dfs(int x,int y)
    {
        if(dp[x][y] > 0)return dp[x][y];
        for(int i=0;i<4;i++)
        {
            int nx=x+dx[i];
            int ny=y+dy[i];
            if(nx>=0 && nx <m && ny>=0 && ny <n )
            if(!vis[nx][ny] && map[nx][ny] < map[x][y])
            {
                vis[nx][ny]=1;
                dp[x][y]=max(1+dfs(nx,ny),dp[x][y]);
                vis[nx][ny]=0;
            }
        }
        return dp[x][y];
    }
    int main()
    {
        _S(D D,&m,&n);
        int i,j;
        for(i = 0; i < m; i++ )
           for( j = 0; j < n; j++ )
           _S(D,&map[i][j]);
           
        int Max=0;
        for(i = 0; i < m; i++)
           for(j = 0; j < n; j++)
           {
                memset(vis,0,sizeof(vis));
                vis[i][j]=1;
                dfs(i,j);
                if(dp[i][j] > Max)Max=dp[i][j];
           }
           
         printf(D "\n",Max+1);   
           
        system("pause");
        return 0;
    }
    

  • 相关阅读:
    leetcode
    Vim i和a差别
    HDU-4643-GSM(DFS)
    使用可编程电源自动化输出电源
    如何使用全局变量
    异步和同步
    启动界面
    鼠标右键弹出菜单
    Qt+excel
    Qt+数据库
  • 原文地址:https://www.cnblogs.com/hpustudent/p/2166800.html
Copyright © 2020-2023  润新知