刚开始写记忆化搜索,不会写,求调
#include<bits/stdc++.h>
using namespace std;
int R,C;
int h[105][105];
int mem[105][105];
int dx[4]={0,0,-1,+1},dy[4]={-1,+1,0,0};
int dfs(int,int);
int main(){
cin>>R>>C;
for(int i=1;i<=R;i++){
for(int j=1;j<=C;j++){
cin>>h[i][j];
}
}
memset(mem,-1,sizeof(mem));
int Max=0;
for(int i=1;i<=R;i++){
for(int j=1;j<=C;j++){
Max=max(Max,dfs(i,j));
}
}
cout<<Max;
}
int dfs(int r,int c){
if(mem[r][c]!=-1){
return mem[r][c];
}
if(h[r][c]<=0){
return 0;
}
for(int i=0;i<4;i++){
if(h[r+dx[i]][c+dy[i]]<h[r][c]){
mem[r][c]=dfs(r+dx[i],c+dy[i]);
return mem[r][c];
}
}
mem[r][c]=0;
return 0;
}