您的位置:首页 > 其它

nyoj 10 skiing 搜索+动归

2013-10-06 18:56 344 查看
整整两天了,都打不开网页,是不是我提交的次数太多了?

nyoj 10:

#include<stdio.h>
#include<string.h>
int a[103][103],b[103][103];
int X,Y;
int maxx(int a,int b)
{
return a>b?a:b;
}
int max(int a,int b,int c,int d)
{
return maxx(maxx(a,b),maxx(c,d));
}
int kkk(int x,int y,int c)
{
if(x==0||y==0||x>X||y>Y||a[x][y]>=c)
return 0;
if(b[x][y]>=0)
return b[x][y];
b[x][y]=max(kkk(x+1,y,a[x][y]),kkk(x-1,y,a[x][y]),kkk(x,y-1,a[x][y]),kkk(x,y+1,a[x][y]))+1;
return b[x][y];
}
int main()
{
//    freopen("250.txt","r",stdin);
int t,i,j,maxi,k;
scanf("%d",&t);
while(t--)
{
maxi=-1;
memset(b,-1,sizeof(b));
scanf("%d%d",&X,&Y);
for(i=1;i<=X;i++)
for(j=1;j<=Y;j++)
scanf("%d",&a[i][j]);
for(i=1;i<=X;i++)
for(j=1;j<=Y;j++)
{
k=kkk(i,j,10001);
if(k>maxi)
maxi=k;
}
printf("%d\n",maxi);
}
return 0;
}


View Code
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: