最长滑雪路径
来源:互联网 发布:淘宝商城女装晚礼服 编辑:程序博客网 时间:2024/05/16 14:05
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子 1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。第一行表示有几组测试数据,输入的第二行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。后面是下一组数据;15 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
样例输出
25
思想(动态规划):f[i][j]保存m[i][j]这个点为终点的最长路径,那么f[i][j]的确定可以是上下左右四个方向滑向m[i][j],取四个方向的最大值在+1就可以了
#include<iostream>#include<vector>#include<memory.h>using namespace std;inline int max(int a, int b) {return(a > b ? a : b);}inline int max(int a, int b, int c, int d){return max(max(a, b), max(c, d));}int f[100][100];//全局变量自动初始化为0,f中是该点的最大值int R, C;int m[100][100];int dfs(int row, int col, int h){if (row < 0 || col < 0 || row >= R || col >= C || h <= m[row][col])//注意顺序。如果h <= m[row][col]会由于先判断而row越界出错{return 0;}if (f[row][col] >= 0)//已经搜索过,直接返回{return f[row][col];}//四个方向f[row][col] = max(dfs(row - 1, col, m[row][col]),//上dfs(row, col + 1, m[row][col]),//右dfs(row + 1, col, m[row][col]),//下dfs(row, col - 1, m[row][col]))+1;//左 return f[row][col];}int main(){int c, num;int max;cin >> c;while (c--){//cin >> R;//cin >> C;max = 0;cout << sizeof(f) << endl;for (int i = 0; i < 10;i++)for (int j = 0; j < 10; j++)cout << f[i][j] <<" ";for (int i = 0; i < R; i++){for (int j = 0; j < C; j++){cin >> num;m[i][j] = num;f[i][j] = -1;}}for (int i = 0; i < R; i++){for (int j = 0; j < C; j++){int current = dfs(i, j, 10002);if (current > max)max = current;}}cout << max << endl;}system("pause");return 0;}
0 0
- 最长滑雪路径
- uva 10285 最长的滑雪路径
- 习题9-1 最长的滑雪路径 UVa10285
- uva 10285 最长的滑雪路径(动态规划水题)
- 习题9-1(最长滑雪路径)【深搜dfs】+【记忆化搜索】
- Uva10285 详解 最长的滑雪路径(Longest Run on a SnowBoard)
- 习题9-1 UVA 10285 Longest Run on a Snowboard 最长滑雪路径(记忆话搜索)
- 算法竞赛入门经典 第二版 习题9-1最长滑雪路径 Longest Run on a Snowboard uva10285
- POJ3037 滑雪(单源最短路径)
- 最长路径
- 最长路径
- 最长滑雪路(简单DP)
- poj 1088 lightblueme 最佳的滑雪路径
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- storm的并发
- Web开发过程中乱码问题
- Redis+linux入门(二)
- leetcode之Intersection of Two Linked Lists
- Github+Jekyll —— 创建个人免费博客(三)Git学习
- 最长滑雪路径
- 自定义控件---OnMeasure()方法分析
- 【GDOI2016模拟3.9】暴走的图灵机
- 二叉树是否相同
- UIWebView简单使用
- nodeJs grunt中Gruntfile.js模版
- 表单提交方式总结
- Boost解析json格式文本
- 【UFLDL-exercise9-Convolution and Pooling】