zoukankan      html  css  js  c++  java
  • poj 1088 滑雪

    滑雪
    Time Limit: 1000MS   Memory Limit: 65536K
    Total Submissions: 75626   Accepted: 28028

    难得一见的中文题  题意就不多做解释  求最长路径

    简单点的动规  唯一的麻烦就是没告诉你起点和终点  没关系  直接一个个暴搜反正数据不大。。。

    转移方程 dp[ i ] [ j ]=max( dp[ i-1 ] [ j ] ,dp[ i ] [ j-1 ] ,dp[ i+1 ] [ j ] ,dp  [ i ] [ j+1 ]  )


    #include<iostream>
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    using namespace std;
    int dx[4]={0,1,0,-1};
    int dy[4]={1,0,-1,0};
    int dp[105][105];
    int map[105][105],vis[105][105];
    int col,row,ans;
    int search(int x,int y)
    {
        int sum,xx,yy,maxn=0;
        if(dp[x][y])
            return dp[x][y];
        for(int i=0;i<4;i++)
        {
            xx=x+dx[i];
            yy=y+dy[i];
            if(xx>=0&&xx<row&&yy>=0&&yy<col&&map[xx][yy]<map[x][y])
            {
                sum=search(xx,yy);
                if(maxn<sum)
                    maxn=sum;
            }
        }
        return maxn+1;
    }
    int main()
    {
        int i,j;
        while(~scanf("%d%d",&row,&col))
        {
            for(i=0;i<row;i++)
                 for(j=0;j<col;j++)
                 scanf("%d",&map[i][j]);
            for(i=0;i<row;i++)
                for(j=0;j<col;j++)
            {
                dp[i][j]=search(i,j);
                if(dp[i][j]>ans)
                    ans=dp[i][j];
            }
           /* for(i=0;i<row;i++)
            {
                for(j=0;j<col;j++)
                cout<<dp[i][j]<<" ";
                cout<<endl;
            }*/
    
    
         cout<<ans<<endl;
        }
    
        return 0;
    }
    


  • 相关阅读:
    jstl与el学习笔记
    Subversion 安装笔记
    某公司面试
    字符集与字符编码的一些小常识,以及java web中文乱码的一些solution
    分治算法与合并排序示例
    C/C++ 笔试,难倒我哉
    HTML meat作用
    VIM配置DBGp调试PHP程序
    更新系统引导项
    PHP技术讨论群
  • 原文地址:https://www.cnblogs.com/claireyuancy/p/6910026.html
Copyright © 2011-2022 走看看