滑雪问题(dfs+递归)记忆化搜索 c语言
来源:互联网 发布:双系统windows连不上网 编辑:程序博客网 时间:2024/06/06 14:12
BackGroud
今年冬天,到西岭雪山上滑雪的人越来越多。滑雪场的管理人员为了提高游客滑雪的兴趣,决定组织一场滑雪比赛。但他们在比赛地点的选择上出现了困难,因为他们无法记算出某个场地所需要的最长滑雪时间,进而安排获奖的时间段。他们现在请求你的帮助。
The Problem
我们把场地分为一个个的格子,给每个格子标定一个整数,代表这个格子所代表的地面的海拔高度。 比赛的参赛者可以从任意一个格子开始,但只能向相邻的四个格子移动,并且目地格子的高度必须小于现在所在格子的高度。我们假设从一个格子滑行到另一个格子所用的时间为1个单位时间。现在我们给出场地的大小(n*m)和每个格子所代表的地面的海拔高度。你能计算出在这个场地上最长能滑行多少时间吗?
输入
本题包括多组测试数据。每组测试数据的第一行为两个整数n和m(1<=m,n<=50),分别代表场地的行和列数。接下来是一个n*m的矩阵。包含每个格子所代表的地面的海拔高度。当n=m=0时输入结束,这组数据不包括在需要计算的数据中。
输出
对于每一组输入数据,输出一个整数,代表这个场地上最长能滑行多少时间。
样例输入
4 4
1 12 11 10
2 13 16 9
3 14 15 8
4 5 6 7
4 4
1 2 3 4
5 6 7 8
9 10 11 12
13 14 15 16
0 0
样例输出
15
6
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int n, m;
int Map[100][100];
int dp[100][100];
int deta[4][2] = {{1, 0}, {-1, 0}, {0, 1},{0, -1}};//在这里定义这个数组是代表向下向上向左向右四种可能性。
int max(int x,int y)
{
returnx>=y?x:y;
}
int solve(int x, int y)
{
inti = 0;
if (dp[x][y] > 0)
return dp[x][y];
for (; i < 4; i++) {
int nx = x + deta[i][0];
int ny = y + deta[i][1];
if (0 <= nx && nx < n && 0 <= ny && ny< m && Map[nx][ny] < Map[x][y]) {
dp[x][y] = max(dp[x][y], solve(nx, ny) + 1);
}
}
return dp[x][y];
}
int main()
{
int ans = 0;
int i = 0;
int j = 0;
int e = 0;
int f = 0;
scanf("%d%d", &n, &m);
while(n!=0&&m!=0)
{
ans=0;
memset(dp, 0, sizeof(dp)); //为了把dp数组中的每个数初始化为0.
for(i=0;i< n; i++)
{
for(j=0; j<m; j++)
{
scanf("%d",&Map[i][j]);
}
}
for (e=0; e < n; e++) {
for (f=0; f < m; f++) {
ans = max(ans, solve(e,f)); //map中每一个数都考虑到了。
}
}
printf("%d\n", ans);
scanf("%d%d", &n, &m);
}
system("PAUSE");
return 0;
}
- 滑雪问题(dfs+递归)记忆化搜索 c语言
- DFS:POJ1088-滑雪(记忆化搜索)
- [ACM] poj 1088 滑雪 (记忆化搜索DFS)
- 记忆化搜索(DFS+动态规划)--滑雪
- poj 1088 滑雪 DP(dfs的记忆化搜索)
- poj 1088 滑雪(DFS+记忆化搜索)
- POJ 1088 滑雪 DFS 记忆化搜索
- POJ 1088 滑雪 DFS 记忆化搜索
- poj 1088 滑雪 【记忆化搜索】+【DFS】
- poj1088滑雪(dfs+记忆化搜索、备忘录)
- POJ 1088 滑雪(记忆化搜索+DFS)
- poj 1088 滑雪(dfs记忆化搜索)
- poj1088滑雪【dfs or 记忆化搜索】
- B-滑雪(dfs记忆化搜索)
- POJ 1088 滑雪(递归+记忆化搜索)
- POJ 1088 滑雪 (递归+记忆化搜索)
- POJ-1088~~~~~滑雪(递归+记忆化搜索)
- POJ1088 滑雪(递归 + 记忆化搜索)
- 如何优雅的退出goroutine
- bzoj1584 [Usaco2009 Mar]Cleaning Up 打扫卫生 dp
- Mybaits--一对多关系配置文件(带源码)
- 顺序栈的定义及相关操作
- OpenGL编程指南(第八版)第一个渲染三角形案例代码在win8双显卡电脑VS2015中运行方法总结
- 滑雪问题(dfs+递归)记忆化搜索 c语言
- HDU
- 【设计模式】行为型模式(上)
- 1. Android
- python学习笔记(三)面向对象
- TCP协议首部中URG与PSH的区别
- hdoj1016 Prime Ring Problem (深度搜索)
- USACO
- android 全屏模式下软键盘弹出问题