FPXS11GO @ 2022-09-02 17:51:23
#include<bits/stdc++.h>
using namespace std;
int r,c,maxn,a[101][101],s[101][101];
const int dx[4]={0,0,1,-1};
const int dy[4]={1,-1,0,0};
int dfs(int x,int y){
if(s[x][y])return s[x][y];
s[x][y]=1;
for(int i=0;i<4;i++)
{
int xx=dx[i]+x;
int yy=dy[i]+y;
if(xx>=1&&xx<=c&&yy>=1&&yy<=c&&a[x][y]>a[xx][yy])
{
dfs(xx,yy);
s[x][y]=max(s[xx][yy]+1,s[x][y]);
}
}
return s[x][y];
}
int main(){
cin>>r>>c;
for(int i=1;i<=r;r++)
for(int j=1;j<=r;j++)
cin>>a[i][j];
for(int i=1;i<=r;r++)
for(int j=1;j<=r;j++)
maxn=max(maxn,dfs(i,j));
cout<<maxn<<endl;
return 0;
}
by joejoejoejoe @ 2022-09-02 18:29:20
首先```cpp
for(int i=1;i<=r;r++)
for(int j=1;j<=r;j++)
cin>>a[i][j];
for(int i=1;i<=r;r++)
for(int j=1;j<=r;j++)
maxn=max(maxn,dfs(i,j));
for里面应该改成i++。 然后,
if(xx>=1&&xx<=c&&yy>=1&&yy<=c&&a[x][y]>a[xx][yy])
这里的xx<=c应该改成xx<= r。
ac代码
by FPXS11GO @ 2022-09-02 20:25:10
@joejoejoe 感激不尽,谢谢大佬qwq