动态规划 POJ 1088 滑雪

Description

Michael 喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个 区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
 1  2  3  4 5

16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。

Input

输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。

Output

输出最长区域的长度。

Sample Input

5 5
1 2 3 4 5
16 17 18 19 6
15 24 25 20 7
14 23 22 21 8
13 12 11 10 9

Sample Output

25

嗯嗯,这是我的第二道动态规划题,实在感觉和前一道很像啊,然后就直接做了。
我分析一下:记忆化搜索+递归。
1、起点是未知的,所以要遍历每一个起点,最后记录最大值。
2、图形是有边界的,必须满足按照严格下降的条件,才能走到周围的点。
3、然后就没有了。
 1 #include<iostream>
 2 #include<string.h>
 3 #define maxn 100+5
 4 using namespace std;
 5 int xx[4]={0,0,-1,1};
 6 int yy[4]={-1,1,0,0};
 7 int d[maxn][maxn];
 8 int v[maxn][maxn];
 9 int dp(int x,int y,int n,int m){
10     if(d[x][y]>0) return d[x][y];
11     d[x][y]=1;
12     for (int i=0;i<4;i++){
13         int nx=x+xx[i];
14         int ny=y+yy[i];
15         if (nx>n || ny>m || nx<1 || ny<1 || v[nx][ny]>=v[x][y]) continue;
16         d[x][y]=max(d[x][y],dp(nx,ny,n,m)+1);
17     }
18     return d[x][y];
19 }
20 int main(){
21     int n,m;
22     while(cin>>n>>m){
23         for(int i=1;i<=n;i++){
24             for(int j=1;j<=m;j++){
25                 cin>>v[i][j];
26             }
27         }
28         int ans=0;
29         memset(d,0,sizeof(d));
30         for(int i=1;i<=n;i++){
31             for(int j=1;j<=m;j++){
32                 ans=max(ans,dp(i,j,n,m));
33             }
34         }
35         cout<<ans<<endl;
36     }
37     
38 }

 

转载于:https://www.cnblogs.com/little-w/p/3223288.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/474128.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

R语言第十讲 逻辑斯蒂回归

模型函数介绍 Logistic Regression 虽然被称为回归&#xff0c;但其实际上是分类模型&#xff0c;并常用于二分类。Logistic Regression 因其简单、可并行化、可解释强深受工业界喜爱。 Logistic 回归的本质是&#xff1a;假设数据服从这个Logistic 分布&#xff0c;然后使用极…

网络上总结python中的面试题

【题目:001】| 说说你对zen of python的理解&#xff0c;你有什么办法看到它? Python之禅,Python秉承一种独特的简洁和可读行高的语法&#xff0c;以及高度一致的编程模式&#xff0c;符合“大脑思维习惯”&#xff0c;使Python易于学习、理解和记忆。Python同时采用了一条极简…

阿里云 超级码力在线编程大赛初赛 第3场 题目4. 完美字符串

文章目录1. 题目2. 解题1. 题目 描述 定义若一个字符串的每个字符均为’1’&#xff0c;则该字符串称为完美字符串。 给定一个只由’0’和’1’组成的字符串s和一个整数k。 你可以对字符串进行任意次以下操作 选择字符串的一个区间长度不超过k的区间[l, r]&#xff0c;将区间…

(译)Windows Azure的7月更新:SQL数据库,流量管理,自动缩放,虚拟机

Windows Azure的7月更新:SQL数据库&#xff0c;流量管理&#xff0c;自动缩放&#xff0c;虚拟机 今早我们释出一些很棒的Windows Azure更新。这些新的提升包括&#xff1a;SQL数据库&#xff1a;支持SQL自动导出和一个新的高级层SQL数据库选项流量管理&#xff1a;在HTML门户的…

R语言第十一讲 决策树与随机森林

概念 决策树主要有树的回归和分类方法&#xff0c;这些方法主要根据分层和分割 的方式将预测变量空间划分为一系列简单区域。对某个给定待预测的观 测值&#xff0c;用它所属区域中训练集的平均值或众数对其进行预测。 基于树的方法简便且易于解释。但预测准确性通常较低。如图…

python面试题汇总(1)

1. (1)python下多线程的限制以及多进程中传递参数的方式   python多线程有个全局解释器锁&#xff08;global interpreter lock&#xff09;&#xff0c;这个锁的意思是任一时间只能有一个线程使用解释器&#xff0c;跟单cpu跑多个程序一个意思&#xff0c;大家都是轮着用的&…

阿里云 超级码力在线编程大赛初赛 第3场 题目1. 最大公倍数

文章目录1. 题目2. 解题1. 题目 来源&#xff1a;https://tianchi.aliyun.com/oj/15179470890799741/85251759933690467 2. 解题 看的大佬的解题&#xff0c;很强&#xff01; class Solution { public:/*** param a: Left margin* param b: Right margin* return: return t…

Javascript:前端利器 之 JSDuck

背景 文档的重要性不言而喻&#xff0c;对于像Javascript这种的动态语言来说就更重要了&#xff0c;目前流行的JDoc工具挺多的&#xff0c;最好的当属JSDuck&#xff0c;可是JSDuck在Windows下的安装非常麻烦&#xff0c;这里就写下来做个备忘。 JSDuck生成的文档效果 JSDuck安…

Ubuntu 扩展内存或断电之后卡在 /dev/sda1 clean 和 /dev/sda1 recovering journal

当ubuntu虚拟机硬盘空间不够用的时候&#xff0c;往往会出现新增扩展硬盘空间之后&#xff0c;出现开机卡死的现象。 通过查阅相关资料&#xff0c;排坑如下&#xff1a; 一、原VM硬盘空间已满 当原VM硬盘空间已满的情况下&#xff0c;千万不要重启或者关机操作&#xff0c;极…

阿里云 超级码力在线编程大赛初赛 第3场 题目2. 房屋染色(DP)

文章目录1. 题目2. 解题1. 题目 有n个房子在一列直线上&#xff0c;现在Bob需要给房屋染色&#xff0c;共有k种颜色。 每个房屋染不同的颜色费用也不同&#xff0c;Bob希望有一种染色方案使得相邻的房屋颜色不同。 但Bob计算了使相邻房屋颜色不同的最小染色费用&#xff0c;发…

hadoop环境安装及简单Map-Reduce示例

说明&#xff1a;这篇博客来自我的csdn博客&#xff0c;http://blog.csdn.net/lxxgreat/article/details/7753511 一.参考书&#xff1a;《hadoop权威指南--第二版&#xff08;中文&#xff09;》 二.hadoop环境安装 1.安装sun-jdk1.6版本 1&#xff09;目前我只在一台服务器&a…

TCP协议以及三次握手

TCP协议&#xff0c;传输控制协议&#xff08;英语&#xff1a;TransmissionControl Protocol&#xff0c;缩写为 TCP&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议&#xff0c;由IETF的RFC793定义。 tcp通信需要经过创建连接、数据传送、终止连接三个步骤…

02.改善深层神经网络:超参数调试、正则化以及优化 W1.深度学习的实践层面(作业:初始化+正则化+梯度检验)

文章目录作业1&#xff1a;初始化1. 神经网络模型2. 使用 0 初始化3. 随机初始化4. He 初始化作业2&#xff1a;正则化1. 无正则化模型2. L2 正则化3. DropOut 正则化3.1 带dropout的前向传播3.2 带dropout的后向传播3.3 运行模型作业3&#xff1a;梯度检验1. 1维梯度检验2. 多…

C#快速导入海量XML数据至SQL Server数据库

#region 将Xml中的数据读到Dataset中&#xff0c;然后用SqlBulkCopy类把数据copy到目的表中using (XmlTextReader xmlReader new XmlTextReader(sourcePath)){ DataSet ds new DataSet(); ds.ReadXml(XmlReader.Create(sourcePath));//把数据读到DataSet这个过程有点慢…

LeetCode 第 34 场双周赛(385/2842,前13.5%)

文章目录1. 比赛结果2. 题目1. LeetCode 5491. 矩阵对角线元素的和 easy2. LeetCode 5492. 分割字符串的方案数 medium3. LeetCode 5493. 删除最短的子数组使剩余数组有序 medium4. LeetCode 5494. 统计所有可行路径 hard1. 比赛结果 做出来3题&#xff0c;最后一题动态规划&a…

TCP程序流程及服务器客户端

Tcp服务器创建&#xff1a; import socket # 服务器的端口号 PORT 9000 # 创建套接字socket对象&#xff0c;用于进行通讯 # scoket.SOCK_STREAM 表明使用tcp协议&#xff0c;流式协议 # 监听socket server_sock socket.socket(socket.AF_INET,socket.SOCK_STREAM) # 为…

IOS开发之格式化日期时间

在开发iOS程序时&#xff0c;有时候需要将时间格式调整成自己希望的格式&#xff0c;这个时候我们可以用NSDateFormatter类来处理。例如&#xff1a; //实例化一个NSDateFormatter对象 NSDateFormatter *dateFormatter [[NSDateFormatter alloc] init]; //设定时间格式,这里可…

LeetCode 1576. 替换所有的问号

文章目录1. 题目2. 解题1. 题目 给你一个仅包含小写英文字母和 ? 字符的字符串 s&#xff0c; 请你将所有的 ? 转换为若干小写字母&#xff0c;使最终的字符串不包含任何 连续重复 的字符。 注意&#xff1a;你 不能 修改非 ‘?’ 字符。 题目测试用例保证 除 ‘?’ 字符…

tcp十种状态

CLOSED&#xff1a;表示关闭状态&#xff08;初始状态&#xff09;。 LISTEN&#xff1a;该状态表示服务器端的某个SOCKET处于监听状态&#xff0c;可以接受连接。 SYN_SENT&#xff1a;这个状态与SYN_RCVD遥相呼应&#xff0c;当客户端SOCKET执行CONNECT连接时&#xff0c;它首…