(DP6.1.4.2)POJ 1088 滑雪

来源:互联网 发布:淘宝运营每日工作内容 编辑:程序博客网 时间:2024/06/06 17:00

其实下面用到的是搜索。(呜呜,DP写的过了测试用例但是却总是AC不了,所以改用搜索来做了)


/* * POJ_1088.cpp * *  Created on: 2013年10月13日 *      Author: Administrator */#include <iostream>#include <cstdio>using namespace std;const int maxn = 110;int a[maxn][maxn];int d[maxn][maxn];int dir[4][2] = {{1,0},{-1,0},{0,1},{0,-1} };int r,c;void run(int x,int y){if(d[x][y] > 0){return ;}d[x][y] = 1;int i,j;    for(i = 0 ; i < 4 ; ++i){    int xx = x + dir[i][0];    int yy = y + dir[i][1];    if(xx >= 0 && xx <r && yy >= 0 && yy < c && a[xx][yy] < a[x][y]){    run(xx,yy);    if(d[xx][yy] + 1 > d[x][y]){    d[x][y] = d[xx][yy] + 1;    }    }    }}int main(){while(scanf("%d%d",&r,&c)!=EOF){int i,j;for(i = 0 ; i < r ; ++i){for(j = 0 ; j < c ; ++j){scanf("%d",&a[i][j]);}}int maxStep = 0;for(i = 0 ; i < r; ++i){for(j = 0 ; j < c ; ++j){if(d[i][j] == 0){run(i,j);if(d[i][j] > maxStep){maxStep = d[i][j];}}}}printf("%d\n",maxStep);}return 0;}