滑雪

//
// Created by ljs on 2018/8/28.
//poj 1088
//
#include <iostream>
using namespace std;
int m = 101, n = 101;
int dir[4][4] = {{-1, 0}, {0, 1},{1, 0}, {0, -1}};
int maze[101][101];
int maxlength = -1;
void dfs(int x, int y, int cur){
    if(cur > maxlength){
        maxlength = cur;
    }
    for(int i = 0; i < 4; i++){
        int xx = x + dir[i][0];
        int yy = y + dir[i][1];
        if(xx < 0 || xx >= m || yy < 0 || yy >= n || maze[xx][yy] >= maze[x][y]){
            continue;
        }
        dfs(xx, yy, cur+1);
    }
}
int main(){
    cin>>m>>n;
    for(int i = 0; i < m ;i++){
        for(int j = 0; j < n; j++){
            cin>>maze[i][j];
        }
    }
    for(int i = 0; i < m;i++){
        for(int j = 0; j < n;j++){
            dfs(i,j,1);
        }
    }
    cout<<maxlength<<endl;
    return 0;
}


©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容