1 条题解

  • 1
    @ 2024-2-22 12:43:56

    世界上最好的题解😄

    #include<bits/stdc++.h>
    using namespace std;
    int a[101][101],f[101][101],r,c,ans;
    int dx[4]={0,0,-1,1};
    int dy[4]={-1,1,0,0};
    int dfs(int x,int y){
    	if(f[x][y])return f[x][y];
    	f[x][y]=1;
    	int t=0;
    	for(int i=0;i<=3;i++){
    		int xx=x+dx[i],yy=y+dy[i];
    		if(xx>=1&&xx<=r&&yy>=1&&yy<=c&&a[xx][yy]<a[x][y]){
    			t=dfs(xx,yy)+1;
    		}
    		f[x][y]=max(t,f[x][y]);
    	}
    	return f[x][y];
    }
    int main(){
    	cin>>r>>c;
    	for(int i=1;i<=r;i++)for(int j=1;j<=c;j++)cin>>a[i][j];
    	int m=0;
    	for(int i=1;i<=r;i++)for(int j=1;j<=c;j++){
    		f[i][j]=dfs(i,j);
    		m=max(f[i][j],m);
    	}
    	cout<<m;
    	return 0;
    }
    

    看完别忘了点赞呦👀️

    • 1

    信息

    ID
    434
    时间
    1000ms
    内存
    125MiB
    难度
    3
    标签
    递交数
    13
    已通过
    9
    上传者