为什么TLE
原题链接:8029.滑雪2026-10-17 19:50:19
发布于:浙江
#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll g[110][110];
ll dist[110][110];
ll n,m,mx;
ll dx[] = {0,0,1,-1};
ll dy[] = {1,-1,0,0};
ll dfs(ll x,ll y){
if(dist[x][y])return dist[x][y];
dist[x][y] = 1;
for(ll i=0;i<4;i++){
ll nx = x + dx[i];
ll ny = y + dy[i];
if(nx<1 || nx>n || ny<1 || ny>m)continue;
if(g[nx][ny]>=g[x][y])continue;
dist[x][y] = max(dist[x][y], dfs(nx,ny)+1);
}
return dist[x][y];
}
int main(){
cin>>n>>m;
for(ll i=1;i<=n;i++)
for(ll j=1;j<=m;j++)
cin>>g[i][j];
for(ll i=1;i<=n;i++){
for(ll j=1;j<=m;j++){
dfs(i,j);
}
}
for(ll i=1;i<=n;i++){
for(ll j=1;j<=m;j++){
mx = max(mx,dist[i][j]);
}
}
cout<<mx;
return 0;
}
全部评论 1
发现问题了:没问题
2天前 来自 浙江
0

















有帮助,赞一个