题意:给你一个r*c的矩阵,只能从图上数字大的地方滑向数字小的地方,问你一次性最多滑过多少个数字。
思路:记忆化搜索。顺序搜索,记录地图上每一个点出发所能达到的最远长度,若某一点标记过说明当前点的最远长度已经确定,直接ruturn(这是一步重要剪枝),否则重新搜索。
随着搜索的进行,速度会越来越快(你经历的越多,经验就越多)(前人栽树,后人乘凉)。
下面是ac代码:

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#define ll long long
#define inf 0x3f3f3f3f
#define MID (t[k].l+t[k].r)>>1
#define cl(a,b) memset(a,b,sizeof(a))
using namespace std;//该题采用记忆化搜索
int r,c;
int map[101][101],dp[101][101];
int nextt[4][2]= {{0,1},{1,0},{0,-1},{-1,0}};
int dfs(int x,int y) {if(dp[x][y]) { //若当前点被标记过return dp[x][y];}int maxx=0,temp;//maxx存当前点周围四个点能到的最远值//赋值0是因为若周围四个点都比当前高 那么最后就是0+1for(int i=0; i<4; i++) {int xt=x+nextt[i][0];int yt=y+nextt[i][1];if(xt<1||xt>r||yt<1||yt>c) continue;if(map[xt][yt]<map[x][y]) { //若搜索的这个比当前的海拔低temp=dfs(xt,yt);maxx=max(maxx,temp); }}return dp[x][y]=maxx+1;
}
int main() {scanf("%d%d",&r,&c);cl(map,0);cl(dp,0);for(int i=1; i<=r; i++) {for(int j=1; j<=c; j++) {scanf("%d",&map[i][j]);}}for(int i=1; i<=r; i++) {for(int j=1; j<=c; j++) {dp[i][j]=dfs(i,j);}}int maxx=0;for(int i=1;i<=r;i++){for(int j=1;j<=c;j++){maxx=max(maxx,dp[i][j]);}}printf("%d\n",maxx);return 0;
}

POJ1088 滑雪 dp入门 记忆化搜索相关推荐

  1. 【AcWing】数位统计DP、树形DP、状态压缩DP、记忆化搜索

    [AcWing]数位统计DP.树形DP.状态压缩DP.记忆化搜索 一.数位统计DP 二.状态压缩DP 三.树形DP 四.记忆化搜索 一.数位统计DP 计数问题 给定两个整数 a 和 b,求 a 和 b ...

  2. PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索

    文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这道题是第三次做了. 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的 ...

  3. 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索

    问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...

  4. 51Nod-1284 2 3 5 7的倍数【数位DP+记忆化搜索】

    1284 2 3 5 7的倍数  给出一个数N,求1至N中,有多少个数不是2 3 5 7的倍数. 例如N = 10,只有1不是2 3 5 7的倍数. Input 输入1个数N(1 <= N &l ...

  5. 51Nod-1009 数字1的数量【数位DP+记忆化搜索】

    1009 数字1的数量  给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. ...

  6. POJ1088 Bailian1088 滑雪【DFS+记忆化搜索】

    滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 114685 Accepted: 43807 Description Mic ...

  7. 洛谷 P1434 [SHOI2002]滑雪(DP,记忆化搜索)

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

  8. 动态规划入门——记忆化搜索

    文章目录 记忆化搜索 1.数塔问题 2.滑雪 总结 记忆化搜索 1.数塔问题 [动规:递归求解] 递推方程: 不难发现,最后一层的点到最后一层的最大距离即为自己对应的值a[n - 1][y],这个就是 ...

  9. Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]

    题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...

最新文章

  1. PHP运算符种类很多 主要有,PHP运算符的类别概览
  2. 2.4 matlab矩阵的特征值和特征向量
  3. [转] 64位windows下添加postgreSQL odbc数据源
  4. photoshop script
  5. 魔兽世界客户端数据研究(三)
  6. ehcache使用_Java 程序员如何使用 Shiro 框架
  7. 大数据每日哔哔、新征程
  8. mysql路径猜解_猜解数据库(MYSQL)信息
  9. cmake 学习笔记(四)
  10. 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
  11. iis服务器网站指向ip地址,IIS之Web服务器 一个IP地址对应多个Web站点 多个域名...
  12. 高性能MySQL 第3版(中文)pdf
  13. 4k微型计算机接口,单片微型计算机原理与接口技术:基于STC15W4K32S4单片机
  14. 求字符串中ASCII码值最大和ASCII码值最小的字符
  15. 游戏中常见英语词汇,做游戏的,玩游戏总是要碰到的
  16. 七万字详解paddle-openVINO【CPU】-从环境配置-模型部署全流程
  17. Qt制作QQ好友列表
  18. 人际关系和心理活动机制总结 -- 宁向东的清华管理学课总结
  19. 嵌入式工程师,怎么不被历史洪流冲走?
  20. 商贸批发进销存管理软件,仓库条码管理,库存管理。采购入库单,供应商档案管理。

热门文章

  1. LeetCode刷题:位运算(找不同 和 只出现一次的数字)
  2. 小白初识Apache Pulsar | 技术
  3. cocos2d lua 学习文档
  4. Tomcat具体的查找地址(建议收藏)
  5. 不启动tomcat情况下查看tomcat版本
  6. 【系统收藏——腾讯操盘手 V1.7 PC版 [新版本新增开放操盘线功能]】
  7. 如何使用Facebook Messenger进行视频通话
  8. 解决WIN10 连接蓝牙音响卡顿的问题
  9. Leetcode 621
  10. 电子烟二手烟对人有伤害吗