lamp_forever @ 2022-01-25 15:20:30
#include<bits/stdc++.h>
using namespace std;
int ans,maxx=-1;
int a[103][103];
int b[103][103];
int dx[5]={0,1,0,-1,0};
int dy[5]={0,0,1,0,-1};
int m,n;
void dfs(int x, int y){
if(b[x][y]<ans){
ans++;
b[x][y]=ans;
for(int i=1;i<=4;i++){
if(a[x][y]>a[x+dx[i]][y+dy[i]]&&x+dx[i]>0&&x+dx[i]<=n&&y+dy[i]>0&&y+dy[i]<=m)
{
dfs(x+dx[i],y+dy[i]);
}
}
ans--;
}
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cin>>a[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
ans=1;
dfs(i,j);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
maxx=max(maxx,b[i][j]);
}
}
cout<<maxx;
return 0;
}
我不理解样例过了但是只有10分
by saumtam @ 2022-01-25 15:31:29
我不理解(字面意思)
虽然我A了
by IOcstdio @ 2022-01-28 10:00:41
个人感觉这个题目中给的样例数据有点弱,建议换点数据再试试(比如第一篇题解给出的样例就挺好的),或许就发现错误了呢