记录编号 163721 评测结果 AAAAAAAAAA
题目名称 [UVa 10285] 最长滑坡 最终得分 100
用户昵称 Gravatarforever 是否通过 通过
代码语言 C++ 运行时间 0.381 s
提交时间 2015-05-25 16:47:01 内存使用 3.06 MiB
显示代码纯文本
#include<iostream>
#include<cstdio>
using namespace std;
int n,m,a[600][600],f[600][600];
int x[5]={0,-1,0,1,0};
int y[5]={0,0,1,0,-1};
int t;
int zhao(int,int);
int main()
{   freopen("shunzhi.in","r",stdin);
	freopen("shunzhi.out","w",stdout);
	int ans=0;
	cin>>m>>n;
	for(int i=1;i<=m;++i)
	 for(int j=1;j<=n;++j)
	   cin>>a[i][j];
	for(int i=1;i<=m;++i)
	 for(int j=1;j<=n;++j)
	 {
		t=zhao(i,j);
		f[i][j]=t;
		if(t>ans) ans=t;
	 }
	cout<<ans;
	//system("pause");
}
int zhao(int h,int hh)
{   int jk=1,temp=0;
	if(f[h][hh]>0)
	  return f[h][hh];
	for(int i=1;i<=4;++i)
	{
		int xx=h+x[i];
		int yy=hh+y[i];
		if(xx>=1&&xx<=m&&yy>=1&&yy<=n&&a[xx][yy]>a[h][hh])
		{
			temp=zhao(xx,yy)+1;
			if(temp>jk) jk=temp;
		}
	}
	f[h][hh]=jk;
	return jk;
}