80分求条WA on#1 9
查看原帖
80分求条WA on#1 9
1423724
dyxcj楼主2025/8/5 16:22
#include <bits/stdc++.h>
using namespace std;
long long n,m,t[105][105],s,u,z[105][105];
long long dfs(int x,int y){
    if(z[x][y]!=0)return z[x][y];
    if(t[x][y]==s)return z[x][y]=1;
    if(t[x-1][y]>t[x][y])z[x][y]=max(z[x][y],dfs(x-1,y)+1);
    if(t[x+1][y]>t[x][y])z[x][y]=max(z[x][y],dfs(x+1,y)+1);
    if(t[x][y-1]>t[x][y])z[x][y]=max(z[x][y],dfs(x,y-1)+1);
    if(t[x][y+1]>t[x][y])z[x][y]=max(z[x][y],dfs(x,y+1)+1);
    return z[x][y];
}
signed main(){
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    cin>>n>>m;
    for(int i=1;i<=n;i++)for(int j=1;j<=m;j++)cin>>t[i][j],s=max(s,t[i][j]);
    for(int i=1;i<=n;i++)for(int j=1;j<=n;j++)u=max(u,dfs(i,j));
    cout<<u;
    return 0;
}
2025/8/5 16:22
加载中...