2 条题解

  • 0
    @ 2025-3-22 20:12:25

    模拟即可

    #include<bits/stdc++.h>
    using namespace std;
    int m,n,a[1001][1001],b[1001][1001],l;
    int search(int x,int y){
    	if(b[x][y])return b[x][y];
    	b[x][y]=1;
    	if(a[x][y]>a[x][y+1]&&a[x][y+1])b[x][y]=max(b[x][y],1+search(x,y+1));
    	if(a[x][y]>a[x][y-1]&&a[x][y-1])b[x][y]=max(b[x][y],1+search(x,y-1));
    	if(a[x][y]>a[x+1][y]&&a[x+1][y])b[x][y]=max(b[x][y],1+search(x+1,y));
    	if(a[x][y]>a[x-1][y]&&a[x-1][y])b[x][y]=max(b[x][y],1+search(x-1,y));
    	return b[x][y];
    }
    int main(){
    	cin>>m>>n;
    	for(int i=1;i<=m;i++)
    	  for(int o=1;o<=n;o++)cin>>a[i][o];
    	for(int i=1;i<=m;i++)
    	  for(int o=1;o<=n;o++)search(i,o);
    	for(int i=1;i<=m;i++)
    	  for(int o=1;o<=n;o++)l=max(l,b[i][o]);
    	  cout<<l;
    	return 0;
    }
    
    

    信息

    ID
    1349
    时间
    1000ms
    内存
    256MiB
    难度
    5
    标签
    递交数
    56
    已通过
    23
    上传者