参考代码

wangjiajian  •  2年前


#include <stdio.h>

int r, c, a[101][101], visited[101][101], p[4]= {-1,1,0,0}, q[4]= {0,0,-1,1};

inline int mx(int x, int y) {
    if(x > y)
        return x;
    return y;
}

int dfs(int x,int y) {
    if(!visited[x][y]) {
        int xx, yy;
        for(int i=1; i<=4; i++) {
            xx = x+p[i-1], yy = y+q[i-1];
            if(xx<=r && xx>=1 && yy<=c && yy>=1 && a[x][y]>a[xx][yy])
                visited[x][y] = mx(visited[x][y], dfs(xx,yy));
        }
        visited[x][y]++;
    }
    return visited[x][y];
}

int main() {
    int t, ans;
    scanf("%d%d", &r, &c);
    for(int i=1; i<=r; i++) {
        for(int j=1; j<=c; j++)
            scanf("%d",&a[i][j]);
    }
    for(int i=1; i<=r; i++) {
        for(int j=1; j<=c; j++) {
            if(i==1 && j==1)
                ans = dfs(1, 1);
            else
                ans = mx(dfs(i,j), ans);
        }
    }
    printf("%d", ans);
    return 0;
}

评论:

请使用<bits/stdc++.h>。


ZZQ  •  2年前