求助,记忆化搜索莫名其妙WA俩点
查看原帖
求助,记忆化搜索莫名其妙WA俩点
238451
lmy80802345楼主2021/8/19 22:00
#include <bits/stdc++.h>
using namespace std;
int a[1011][1011];
int  f[1005][1005];
int ser(int i,int j)
{
	if(f[i][j]>0)return f[i][j];
	int ans=1; 
//	printf("%d ", a[i][j]);
	if(a[i+1][j]<a[i][j]&&a[i+1][j]!=0)
	ans=max(ans,ser(i+1,j)+1);
	if(a[i][j+1]<a[i][j]&&a[i][j+1]!=0)
	ans=max(ans,ser(i,j+1)+1);
	if(a[i-1][j]<a[i][j]&&a[i-1][j]!=0)
	ans=max(ans,ser(i-1,j)+1);
	if(a[i][j-1]<a[i][j]&&a[i][j-1]!=0)
	ans=max(ans,ser(i,j-1)+1);
	f[i][j]=ans;
	return ans;
}
int main()
{
	int n,b; 
	scanf("%d %d",&n,&b);
	for(int i=1;i<=n;i++)
	{
		for(int j=1;j<=b;j++)
		{
			scanf("%d",&a[i][j]+1);
		 } 
	 } 
	 int ans=0;
	 for(int i=1;i<=n;i++)
	 {
	 	for(int j=1;j<=b;j++)
	 	{
	 		int p=ser(i,j);
	 		f[i][j]=p;
	 		ans=max(ans,f[i][j]); 
		 }
	 }
	 printf("%d",ans);
}
2021/8/19 22:00
加载中...