1和8wa了,求助
查看原帖
1和8wa了,求助
472695
睡眼惺忪楼主2021/9/8 20:47
#include <bits/stdc++.h>

using namespace std;

int num[101][101];
int ans[101][101];

int max(int a,int b)
{
	return a>b?a:b;
}

int Row,Col;

int dfs(int row,int col){
	if (ans[row][col]) return ans[row][col];
	int r=row,c=col,m=-1;
	if (num[row][col]>num[row-1][col] && row>=2)   
	{
		if (m<num[row-1][col])
		{
			m=num[row-1][col];
			r=row-1;
		}
	}
	if (num[row][col]>num[row+1][col] && row+1<=Row)   
	{
		if (m<num[row+1][col])
		{
			m=num[row+1][col];
			r=row+1;
		}
	}
	if (num[row][col]>num[row][col-1] && col>=2)   
	{
		if (m<num[row][col-1])
		{
			m=num[row][col-1];
			r=row;
			c=col-1;
		}
	}
	if (num[row][col]>num[row][col+1] && col+1<=Col)    
	{
		if (m<num[row][col+1])
		{
			m=num[row][col+1];
			r=row;
			c=col+1;
		}
	}
	if (m==-1) 
	{
		ans[row][col]=1;
		return ans[row][col];
	}
	ans[row][col]=dfs(r,c)+1;
	
	return ans[row][col];
}

int main(){
	cin>>Row>>Col;
	for (int i=0;i<=100;i++)
	{
		for (int j=0;j<=100;j++)
		{
			num[i][j]=0;
		}
	}
	for (int i=1;i<=Row;i++)
	{
		for (int j=1;j<=Col;j++)
		{
			scanf("%d",&num[i][j]);
		}
	}
	for (int i=1;i<=Row;i++)
	{
		for (int j=1;j<=Col;j++)
		{
			dfs(i,j);
		}
	}
	int a=0;
	for (int i=1;i<=Row;i++)
	{
		for (int j=1;j<=Col;j++)
		{
			a=max(a,ans[i][j]);
		}
	}
	cout<<a;
	
	return 0;
}
2021/9/8 20:47
加载中...