题目链接

题意就不多解释了,题目思路很简单,搜索就行了,但是暴搜会TLE,但是对于每一个dfs(X, Y),如果参数一样的话结果也是一样的,我们用一个二维数组去保存每次计算的位置的结果,最后从所有的解里面挑出一个最大值即可。也许一开始考虑的时候会有这样的想法,是不是从最高的位置开始找就能找到解,或者从最低的位置开始,起始不是这样的,所以我们应该去搜索每一个位置为起点的时候的解。

我还因为一点小问题RE哭了,POJ不支持以下语法,阔以原谅,毕竟OJ很早了

return dp[x][y] = 1;
#include <iostream>
#include <cstdio>
#include <cstring>
#include <algorithm>
#include <cmath>
using namespace std;
const int maxn = 110;
int r, c, h[maxn][maxn], dp[maxn][maxn];
int dx[] = {1, -1, 0, 0};
int dy[] = {0, 0, 1, -1};
namespace ans{const int inf = 0x3f3f3f3f;int dfs(int x, int y){if(dp[x][y] >= 0)return dp[x][y];int res = 0;int f = 0;for (int i = 0; i < 4; i++){int xx = x + dx[i];int yy = y + dy[i];if(xx >= 1 && xx <= r && yy >= 1 && yy <= c && h[xx][yy] < h[x][y]){res=max(res, dfs(xx, yy) + 1);f++;}}if(!f) {dp[x][y] = 1;return 1;}dp[x][y] = res;return res;}void MAIN(){scanf("%d %d", &r, &c);for (int i = 1; i <= r; i++){for (int j = 1; j <= c; j++){scanf("%d", &h[i][j]);}}int res = 0;memset(dp, -1, sizeof dp);for (int i = 1; i <= r; i++){for (int j = 1; j <= c; j++){int aans = dfs(i, j);res = max(aans, res);}}printf("%d\n", res);}
}
int main()
{ans::MAIN();return 0;
}

poj 1088 滑雪 (dp)相关推荐

  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 滑雪 【DP】【DFS】

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

  4. poj 1088 滑雪 详解

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

  5. 动态规划 POJ 1088 滑雪

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

  6. POJ 1088 滑雪 (动规)

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

  7. poj 1088滑雪

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

  8. Fire (poj 2152 树形dp)

    Fire (poj 2152 树形dp) 给定一棵n个结点的树(1<n<=1000).现在要选择某些点,使得整棵树都被覆盖到.当选择第i个点的时候,可以覆盖和它距离在d[i]之内的结点,同 ...

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

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

最新文章

  1. C语言截取指定长度子字符串方法
  2. 几种Normalization算法.md
  3. 所谓移动IP是指(58);实现移动IP的关键技术是(59)。【答案】D B
  4. mysql 中文的数据类型_mysql数据类型整理
  5. 机器学习:选对时机直线超车
  6. 编程之美2.10 寻找数组中的最大值和最小值
  7. 三、Ubuntu16.04 安装Jira8.2.2(自带中文包)和破解
  8. 2019公需科目快速学完_3周考过科目二,是这样做到的!
  9. Exception Handling Application Block (5)详细解
  10. tornado celery mysql_tornado中使用celery实现异步MySQL操作
  11. [TWRP 2.8.4 ] 小米 3W 中文-英文版本 twrp
  12. 白话计算机入门书籍--《穿越计算机的迷雾》有感
  13. 如何用VB开发游戏外挂
  14. 人人都是产品经理2.0
  15. Matlab批量修改文件格式
  16. mysql分页合并同类项,人教版初三数学复习目录(全)
  17. Android 编译优化
  18. 正版软件,盗版软件和免费软件
  19. 网络系统结构与设计的基本原则
  20. 安川机器人编程指令含义

热门文章

  1. 《百面机器学习》第零问:什么是特征工程?什么是结构化数据?什么是非结构化数据?
  2. 2018SZB-B 暴力搜索拓扑结构
  3. Linux中cat命令详解
  4. iOS中关于苹果审核IPv6的问题
  5. 利用Python+阿里云实现DDNS(动态域名解析)
  6. 57 Hive案例(数据ETL)
  7. Android悬浮窗开启 适配所有机型(附源码)
  8. Java解压缩zip - 解压缩多个文件或文件夹
  9. 通达信l2接口Type-C功能
  10. Java毕设项目早教课程管理系统计算机(附源码+系统+数据库+LW)