样例过不了 50分代码
查看原帖
样例过不了 50分代码
783941
Jamison楼主2022/9/8 13:14
#include <bits/stdc++.h>
using namespace std;
int r,c,a[105][105],ans,temp,s[105][105];
int  dx[10]={0,1,-1,0,0},dy[10]={0,0,0,-1,1}; 
int dfs(int r,int c)
{
	if(s[r][c]) return s[r][c];
	s[r][c]=1;
	for(int i=1;i<=4;i++)
	{
		int x=r+dx[i],y=c+dy[i];
		if(x>0 && y>0 && x<=r && y<=c && a[x][y]<a[r][c])
		{	
		    dfs(x,y);		
			s[r][c]=max(s[r][c],s[x][y]+1);		
		}  
	}
	return s[r][c];
}
int main()
{
	cin>>r>>c;
    for(int i=1;i<=r;i++)
    	for(int j=1;j<=c;j++)
    		cin>>a[i][j];
    for(int i=1;i<=r;i++)
    {
		for(int j=1;j<=c;j++)
		   ans=max(ans,dfs(i,j));
	}
	cout<<ans;
    return 0;
}
2022/9/8 13:14
加载中...