POJ 1088 滑雪 解题报告
来源:互联网 发布:4k视频剪辑软件 编辑:程序博客网 时间:2024/05/16 08:02
算法:动态规划(记忆化搜索)
用dp时,最好先想好递归的解法,再转换成记忆化搜索。
#include<stdio.h>
#define MAX 101
int height[MAX][MAX];
int flag[MAX][MAX];
int LongestLength(int i, int j, int r, int c)
{
int max = 0, a[4], k;
if(flag[i][j] != -1)
return flag[i][j];
if(i<0 || j<0 || i>=r || j>=c)
return 0;
else
{
if(height[i-1][j] >= height[i][j])
a[0] = 0;
else
a[0] = LongestLength(i-1, j, r, c);
if(height[i+1][j] >= height[i][j])
a[1] = 0;
else
a[1] = LongestLength(i+1, j, r, c);
if(height[i][j-1] >= height[i][j])
a[2] = 0;
else
a[2] = LongestLength(i, j-1, r, c);
if(height[i][j+1] >= height[i][j])
a[3] = 0;
else
a[3] = LongestLength(i, j+1, r, c);
for(k=0; k<4; k++)
if(a[k] > max)
max = a[k];
flag[i][j] = max + 1;
return max + 1;
}
}
int main()
{
int r, c, i, j, max=0;
scanf("%d %d", &r, &c);
for(i=0; i<r; i++)
for(j=0; j<c; j++)
{
scanf("%d", height[i]+j);
flag[i][j] = -1;
}
for(i=0; i<r; i++)
for(j=0; j<c; j++)
if(LongestLength(i, j, r, c) > max)
max = LongestLength(i, j, r, c);
printf("%d/n", max);
return 0;
}
#define MAX 101
int height[MAX][MAX];
int flag[MAX][MAX];
int LongestLength(int i, int j, int r, int c)
{
int max = 0, a[4], k;
if(flag[i][j] != -1)
return flag[i][j];
if(i<0 || j<0 || i>=r || j>=c)
return 0;
else
{
if(height[i-1][j] >= height[i][j])
a[0] = 0;
else
a[0] = LongestLength(i-1, j, r, c);
if(height[i+1][j] >= height[i][j])
a[1] = 0;
else
a[1] = LongestLength(i+1, j, r, c);
if(height[i][j-1] >= height[i][j])
a[2] = 0;
else
a[2] = LongestLength(i, j-1, r, c);
if(height[i][j+1] >= height[i][j])
a[3] = 0;
else
a[3] = LongestLength(i, j+1, r, c);
for(k=0; k<4; k++)
if(a[k] > max)
max = a[k];
flag[i][j] = max + 1;
return max + 1;
}
}
int main()
{
int r, c, i, j, max=0;
scanf("%d %d", &r, &c);
for(i=0; i<r; i++)
for(j=0; j<c; j++)
{
scanf("%d", height[i]+j);
flag[i][j] = -1;
}
for(i=0; i<r; i++)
for(j=0; j<c; j++)
if(LongestLength(i, j, r, c) > max)
max = LongestLength(i, j, r, c);
printf("%d/n", max);
return 0;
}
- POJ 1088 滑雪 解题报告
- POJ 1088 滑雪 解题报告
- POJ 1088 滑雪——解题报告
- POJ-1088-滑雪-解题报告-动态规划-记忆化搜索
- POJ 1088 滑雪(动态规划)(解题报告)
- POJ 1088 滑雪 解题报告(记忆化搜索)
- 滑雪 poj1088 解题报告
- poj1088 滑雪 解题报告
- 【解题报告】滑雪
- 滑雪 解题报告
- POJ 1088 解题报告
- Pku acm 1088 滑雪 动态规划题目解题报告(十五)
- codevs 2152 滑雪 搜索 解题报告
- poj解题报告——1088
- poj数百篇解题报告
- poj 1141解题报告
- poj 1001解题报告
- poj 1011 解题报告
- 海上钢琴师
- 高手帮忙啊!!!!!!!!!!!!!!!1
- mysql的jdbc驱动程序bug
- 四书之“中庸”学习日记3
- 冒泡之后--------浅谈检索
- POJ 1088 滑雪 解题报告
- GoF
- 家庭智能资料
- 围绕EMF探索(4)之Validation组件图
- 54张牌 要求随机 顺序会发生改变
- 软件评测师考试结束了 ,最近正在找工作~
- 关于RDF Schema的一些概念
- 大阪第73天——被刘三忽悠了,被张怀旧骗了,被蓝发女孩郁闷了
- 高执行效率的数学库开发(2)