POJ1088 滑雪 dp入门 记忆化搜索
题意:给你一个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入门 记忆化搜索相关推荐
- 【AcWing】数位统计DP、树形DP、状态压缩DP、记忆化搜索
[AcWing]数位统计DP.树形DP.状态压缩DP.记忆化搜索 一.数位统计DP 二.状态压缩DP 三.树形DP 四.记忆化搜索 一.数位统计DP 计数问题 给定两个整数 a 和 b,求 a 和 b ...
- PAT甲级1106 Lowest Price in Supply Chain:[C++题解]树、结点到根结点的距离、树形dp、记忆化搜索
文章目录 题目分析 题目链接 题目分析 来源:acwing 分析:这道题是第三次做了. 和PAT甲级1079 Total Sales of Supply Chain:[C++题解] 树.结点到根结点的 ...
- 蓝桥杯历届试题 地宫取宝 dp or 记忆化搜索
问题描述 X 国王有一个地宫宝库.是 n x m 个格子的矩阵.每个格子放一件宝贝.每个宝贝贴着价值标签. 地宫的入口在左上角,出口在右下角. 小明被带到地宫的入口,国王要求他只能向右或向下行走. 走 ...
- 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 ...
- 51Nod-1009 数字1的数量【数位DP+记忆化搜索】
1009 数字1的数量 给定一个十进制正整数N,写下从1开始,到N的所有正数,计算出其中出现所有1的个数. 例如:n = 12,包含了5个1.1,10,12共包含3个1,11包含2个1,总共5个1. ...
- POJ1088 Bailian1088 滑雪【DFS+记忆化搜索】
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 114685 Accepted: 43807 Description Mic ...
- 洛谷 P1434 [SHOI2002]滑雪(DP,记忆化搜索)
题目描述 Michael喜欢滑雪.这并不奇怪,因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道在一个区域中最长 ...
- 动态规划入门——记忆化搜索
文章目录 记忆化搜索 1.数塔问题 2.滑雪 总结 记忆化搜索 1.数塔问题 [动规:递归求解] 递推方程: 不难发现,最后一层的点到最后一层的最大距离即为自己对应的值a[n - 1][y],这个就是 ...
- Discovering Gold LightOJ - 1030[概率dp或者记忆化搜索]
题目大意:有一个[1,n][1,n][1,n]的数轴,数轴上的每个对应位置上都有金矿,你初始位置是1,然后你每次都会投色子决定你下一步跳到哪里,如果你跳出了nnn,那么你就要重新投.问你跳到nnn的时 ...
最新文章
- PHP运算符种类很多 主要有,PHP运算符的类别概览
- 2.4 matlab矩阵的特征值和特征向量
- [转] 64位windows下添加postgreSQL odbc数据源
- photoshop script
- 魔兽世界客户端数据研究(三)
- ehcache使用_Java 程序员如何使用 Shiro 框架
- 大数据每日哔哔、新征程
- mysql路径猜解_猜解数据库(MYSQL)信息
- cmake 学习笔记(四)
- 拓端tecdat|R语言分位数回归Quantile Regression分析租房价格
- iis服务器网站指向ip地址,IIS之Web服务器 一个IP地址对应多个Web站点 多个域名...
- 高性能MySQL 第3版(中文)pdf
- 4k微型计算机接口,单片微型计算机原理与接口技术:基于STC15W4K32S4单片机
- 求字符串中ASCII码值最大和ASCII码值最小的字符
- 游戏中常见英语词汇,做游戏的,玩游戏总是要碰到的
- 七万字详解paddle-openVINO【CPU】-从环境配置-模型部署全流程
- Qt制作QQ好友列表
- 人际关系和心理活动机制总结 -- 宁向东的清华管理学课总结
- 嵌入式工程师,怎么不被历史洪流冲走?
- 商贸批发进销存管理软件,仓库条码管理,库存管理。采购入库单,供应商档案管理。