40pts求助
查看原帖
40pts求助
1074084
asd890123楼主2024/6/2 17:09

先不说#2为啥TLE,先告诉我其他为啥WA了。

#include <cstdio>
#include <algorithm>

int r,c,ans = -1,sum,a[105][105];

void dfs(int x,int y){
    
    ans = std::max(ans,sum);
    if (x > 0 && a[x][y] > a[x - 1][y]){
        
        sum++;
        dfs(x - 1,y);
        sum--;
        
    }
    if (x < r && a[x][y] > a[x + 1][y]){
        
        sum++;
        dfs(x + 1,y);
        sum--;
        
    }
    if (y > 0 && a[x][y] > a[x][y - 1]){
        
        sum++;
        dfs(x,y - 1);
        sum--;
        
    }
    if (y < c && a[x][y] > a[x][y + 1]){
        
        sum++;
        dfs(x,y + 1);
        sum--;
        
    }
    
}

int main(){
    
    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++)
            dfs(i,j);
    printf("%d\n",ans);
    
    return 0;
}
2024/6/2 17:09
加载中...