POJ1088 滑雪
2010-12-21 10:40
267 查看
#include<stdio.h>
#include<stdlib.h>
int R,C,max,a[100][100]={10001},b[100][100];
int DFS(int sx,int sy)
{
int i,x,y,tmp,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
if(b[sx][sy])
return b[sx][sy];
b[sx][sy]=1;
for(i=0;i<4;i++)
{
x=sx+dir[i][0];
y=sy+dir[i][1];
if(x>=0&&x<R&&y>=0&&y<C&&a[x][y]<a[sx][sy])
{
tmp=DFS(x,y)+1;
if(tmp>b[sx][sy])
b[sx][sy]=tmp;
}
}
return b[sx][sy];
}
int main()
{
int i,j;
scanf("%d %d",&R,&C);
for(i=0;i<R;i++)
for(j=0;j<C;j++)
scanf("%d",&a[i][j]);
memset(b,0,sizeof(b));
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
b[i][j]=DFS(i,j);
if(b[i][j]>max)
max=b[i][j];
}
}
printf("%d/n",max);
return 0;
}
#include<stdlib.h>
int R,C,max,a[100][100]={10001},b[100][100];
int DFS(int sx,int sy)
{
int i,x,y,tmp,dir[4][2]={{1,0},{-1,0},{0,1},{0,-1}};
if(b[sx][sy])
return b[sx][sy];
b[sx][sy]=1;
for(i=0;i<4;i++)
{
x=sx+dir[i][0];
y=sy+dir[i][1];
if(x>=0&&x<R&&y>=0&&y<C&&a[x][y]<a[sx][sy])
{
tmp=DFS(x,y)+1;
if(tmp>b[sx][sy])
b[sx][sy]=tmp;
}
}
return b[sx][sy];
}
int main()
{
int i,j;
scanf("%d %d",&R,&C);
for(i=0;i<R;i++)
for(j=0;j<C;j++)
scanf("%d",&a[i][j]);
memset(b,0,sizeof(b));
for(i=0;i<R;i++)
{
for(j=0;j<C;j++)
{
b[i][j]=DFS(i,j);
if(b[i][j]>max)
max=b[i][j];
}
}
printf("%d/n",max);
return 0;
}
相关文章推荐
- POJ 1088 滑雪【经典DP】
- POJ 1088 滑雪(DP)
- POJ 1088滑雪的一种非记忆搜索的解法
- POJ 1088 Java:滑雪(动态规划)
- POJ 1088 滑雪 (记忆化搜索)
- POJ 1088 滑雪(dp)
- poj 1088/洛谷 p1434 [SHOI2002]滑雪
- poj1088 滑雪问题 dp写法
- POJ 1088 滑雪 (经典DP)
- 滑雪_poj_1088(记忆化搜索).java
- POJ 1088 滑雪(dp动态规划)
- poj 百练1088滑雪路线问题 动态规划
- poj 1088 滑雪 (记忆化 Dp)
- nyoj10 poj 1088经典滑雪问题
- POJ 1088 滑雪 (记忆化搜索)
- POJ1088 滑雪
- POJ 1088 滑雪(递归+记忆化搜索)
- POJ 1088 滑雪 (记忆化搜索)
- POJ1088 滑雪 记忆化搜索
- POJ 1088-滑雪(dp)