题目链接

题意

给一个R、C数字矩阵,每个点可以向上下左右且比自己小的方向移动,问最长移动距离

AC

  • dfs + 记忆
#include <iostream>
#include <algorithm>
#include <stdio.h>
#include <vector>
#include <map>
#include <string.h>
#include <cmath>
#include <algorithm>
#define N 100005
#define P pair<int,int>
#define mk(a, b) make_pair(a, b)
#define mem(a, b) memset(a, b, sizeof(a))
int inf = 0x3f3f3f3f;
#define ll long long6
using namespace std;
int r, c;
int g[120][120];
int ans;
int vis[120][120];
int dx[4] = {0, 0, 1, -1};
int dy[4] = {1, -1, 0, 0};
bool judge(int x, int y) {if (x < 0 || x >= r || y < 0 || y >= c)return false;elsereturn true;
}
int dfs(int x, int y) {if (vis[x][y] >= 0) {return vis[x][y];}for (int i = 0; i < 4; ++i) {int nx, ny;nx = x + dx[i];ny = y + dy[i];if (!judge(nx, ny) || g[nx][ny] >= g[x][y]) continue;int temp = dfs(nx, ny) + 1;vis[x][y] = max(vis[x][y], temp);}if (vis[x][y] == -1)    return vis[x][y] = 0;else    return vis[x][y];
}int main(){while (cin >> r >> c) {for (int i = 0; i < r; ++i) {for (int j = 0; j < c; ++j) {cin >> g[i][j];}}ans = -1;mem(vis, -1);for (int i = 0; i < r; ++i) {for (int j = 0; j < c; ++j) {ans = max(ans, dfs(i, j) + 1);}}cout << ans << endl;}return 0;
}

POJ 1088(滑雪)相关推荐

  1. POJ 1088 滑雪(输出对比)

    http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 68159 ...

  2. poj 1088 滑雪(线性DP)

    滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 81553   Accepted: 30437 Description ...

  3. poj 1088 滑雪 详解

    http://poj.org/problem?id=1088 这是一道dp入门题,不过我一直没想明白应该怎么dp.今天,在做自己学校oj的算法基础题时看到这题,标注着dp的分类,加上我一直都比较喜欢做 ...

  4. 动态规划 POJ 1088 滑雪

    Description Michael 喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知 ...

  5. POJ 1088 滑雪 (动规)

    滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 75664 Accepted: 28044 Description Mich ...

  6. POJ - 1088 滑雪 【DP】【DFS】

    Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...

  7. poj 1088 滑雪 (dp)

    题目链接 题意就不多解释了,题目思路很简单,搜索就行了,但是暴搜会TLE,但是对于每一个dfs(X, Y),如果参数一样的话结果也是一样的,我们用一个二维数组去保存每次计算的位置的结果,最后从所有的解 ...

  8. poj 1088滑雪

    经典的动态规划问题: 1 #include<iostream> 2 3 using namespace std; 4 5 int b[101][101]; 6 int d[101][101 ...

  9. I - 滑雪 POJ - 1088(深搜,记忆化搜索)

    Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道载一个区域中最长底滑坡. ...

最新文章

  1. 神经科学家为视力受损的人研发新技术
  2. 2021年春季学期-信号与系统-第十三次作业参考答案-第四小题
  3. Alpha冲刺之事后诸葛亮
  4. python中字符串的常见操作方法
  5. leetcode--Median of Two Sorted Arrays
  6. 从一段代码的汇编看计算机的工作原理
  7. 51. N 皇后(回溯算法)
  8. android sharedpreferences工具类
  9. 自我引用(Self reference)
  10. linux下安装redis-cli
  11. 软件工程第四章——软件设计(仅记录我所认为重要的知识点)
  12. Knowledge 7一阶谓词逻辑-Generalized Modus Ponens规则
  13. 基于MySQL的京东用户行为分析
  14. 现代软件工程-构建之法---第一章 练习与讨论
  15. C# 正则表达式 Regex类的使用
  16. 渠道、数据、技术,谁才是网络信贷市场的决胜因素?
  17. 《人物五官morpher制作工艺》
  18. python调用PHP
  19. 淘宝UWP PC版邀请码已经发放给了前20名申请的博友。请在你们的博客园私信里查收。...
  20. 软件构造——浅谈正则表达式

热门文章

  1. exports、module.exports和export、export default到底是咋回事
  2. jQuery ajax - getScript() 方法
  3. vs2010 调试快捷键
  4. C++二维数组动态申请内存
  5. 【练习题】构造方法 编写Java程序,模拟简单的计算器。
  6. [知识图谱实战篇] 四.HTML+D3+CSS绘制关系图谱
  7. iOS之深入解析预乘透明度Premultiplied Alpha
  8. iOS之深入解析类加载的底层原理:分类如何加载到类以及分类和类的配合使用
  9. iOS之使用CAShapeLayer实现复杂的View遮罩效果
  10. G6 图可视化引擎——入门教程——动画