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
// 典型的动态规划,用递归下的记忆化搜索来实现
// 状态转移方程 合法的情况下:DP(i,j) = max( DP(i,j-1), DP(i,j+1), DP(i-1,j), DP(i+1,j) ) + 1;
#include <iostream>
using namespace std;int matrix[100][100];// 保存原始数据
int cnt[100][100]; // 记录每一个点的最大滑雪长度
int row ,col;int DP(int i, int j)
{int max = 0;// 如果已经处理过,直接返回(记忆化搜索效率之所以高的原因:不重复计算)if (cnt[i][j] > 0) {return cnt[i][j];}// 以下四块语句,只对合法的i和j,进行递归(递归的重点就是:剪去所有不合法的,只处理所有合法的!!!)if (j-1 >= 0){if (matrix[i][j] > matrix[i][j-1]){if (max < DP(i, j-1)){max = DP(i, j-1);}}}if (j+1 <= col-1){if (matrix[i][j] > matrix[i][j+1]){if (max < DP(i, j+1)){max = DP(i, j+1);}}}if (i-1 >= 0){if (matrix[i][j] > matrix[i-1][j]){if (max < DP(i-1, j)){max = DP(i-1, j);}}}// 在这里我曾经很SB地将row错写成col,调试所有的行数等于列数的数据都没有问题,可是一提交就Wa// 注意,行数可能不等于列数!!!!if (i+1 <= row-1){if (matrix[i][j] > matrix[i+1][j]){if (max < DP(i+1, j)){max = DP(i+1, j);}}}// 将结果记录在cnt数组中(记忆化搜索的重点)// 如果左右上下都没有一个点的值比这个点的值大,则cnt[i][j] = max+1 = 1// 否则将左右上下各点最大滑雪长度记录在max中, 则cnt[i][j] = max+1 // 这就是max为什么要初始化为0的原因.return cnt[i][j] = max + 1;
}int main()
{int i, j; cin>>row>>col;// 初始化数据for (i=0; i<=row-1; i++){for (j=0; j<=col-1; j++){cin>>matrix[i][j];cnt[i][j] == 0;}}// 处理每一个点,将其最大滑雪长度保存在cnt数组里面for (i=0; i<=row-1; i++){for (j=0; j<=col-1; j++){DP(i, j);}}// 遍历数组,求最大值,在这里因为将cnt错写成matrix而wa了一次,真不应该!!!for (i=0; i<=row-1; i++){for (j=0; j<=col-1; j++){if (cnt[0][0] < cnt[i][j]){cnt[0][0] = cnt[i][j];}}}cout<<cnt[0][0]<<endl;return 0;
}

http://poj.org/showmessage?message_id=113914

转载于:https://www.cnblogs.com/wzqx/p/5873653.html

爱奇艺笔试题——坝上草原滑草相关推荐

  1. 爱奇艺笔试题之成长值计算

    题意如下: 成长值计算 时间限制:C/C++语言 1000MS:其他语言 3000MS 内存限制:C/C++语言 65536KB:其他语言 589824KB 题目描述: 爱奇艺累计有2000万会员,为 ...

  2. python人工智能面试题爱奇艺面试题_爱奇艺面试Python,竟然挂在第5轮……

    今天给大家分享我曾经在爱奇艺的面试,过程还是比较有意思的,可以给大家一些参考 聊骚阶段 嗲妹妹:你好,我是爱奇艺的HR,我们正在招聘运维开发岗位,请问您最近有在看工作机会吗? 我:(这声音也太酥了吧我 ...

  3. python人工智能面试题爱奇艺面试题_【爱奇艺Python面试】爱奇艺大数据面试 python-看准网...

    爱奇艺大数据面试 python 通知的今天上午11点爱奇艺一轮面试,今天!周末!周末!周末!竟然还要面试,内心很无语,上个星期人家腾讯还是周一面试呢,但是,想想宿舍的一个小伙伴今天上午9点半的面试,庆 ...

  4. python人工智能面试题爱奇艺面试题_爱奇艺面试试题是什么?爱奇艺怎么面试的?...

    动漫社区运营 职位描述: 1.负责社区的日常运营,管理监控社区运营数据; 2.深入分析社区用户需求.行为路径.交互等,对各项运营指标负责; 3.定期复盘,推进策略迭代以及运营方法改进,沉淀有效运营模式 ...

  5. python人工智能面试题爱奇艺面试题_经典算法题:爱奇艺研发工程师算法笔试题...

    A. 7 B. 6 C. 4 D. 5 4.对关键码序列28,16,32,12,60,2,5,72快速排序,从小到大一次划分结果为 A. (5,16,2,12)28(60,32,72) B. (2,5 ...

  6. 爱奇艺,美团打车Java岗面试经历,这些问题我是真没抗住

    前言 对, 就是今年的金九银十,我满怀希望的抓住了这次面试招聘的好机会,也只是没想到这才开始就遇到了不测,接连面试了两个心仪的公司都没过,面试过程可以算是最心酸了的一次经历了,最心酸的两次-详细的过程 ...

  7. 爱奇艺,腾讯Java岗面试经历,这些问题我是真没抗住

    前言 对, 就是今年的金九银十,我满怀希望的抓住了这次面试招聘的好机会,也只是没想到这才开始就遇到了不测,接连面试了两个心仪的公司都没过,面试过程可以算是最心酸了的一次经历了,最心酸的两次-详细的过程 ...

  8. 爱奇艺,滴滴打车Java岗面试经历,这些问题我是真没抗住

    前言 对, 就是今年的金九银十,我满怀希望的抓住了这次面试招聘的好机会,也只是没想到这才开始就遇到了不测,接连面试了两个心仪的公司都没过,面试过程可以算是最心酸了的一次经历了,最心酸的两次-详细的过程 ...

  9. [经验教程]iPhone苹果手机上怎么使用微信支付123元开通爱奇艺京东plus联名会员?

    iPhone苹果手机上怎么使用微信支付123元开通爱奇艺京东plus联名会员? 1.打开爱奇艺京东plus官方联合会员活动页面: iPhone苹果手机上怎么使用微信支付123元开通爱奇艺京东plus联 ...

最新文章

  1. 在图像旁边垂直对齐文字?
  2. timm 笔记:数据集
  3. img should be PIL Image. Got <class ‘torch.Tensor‘>
  4. 1792 关于数论中的互质数的最大不能组合数
  5. 最大值和最小值的差(信息学奥赛一本通-T1112)
  6. 腾讯往事:微信其实就是第四代 QQ 邮箱
  7. js动态创建Form表单并提交
  8. 常用验证码功能实现大全
  9. fashion minst
  10. 财务总监的秘密:不用代码和Excel,10分钟做出高大上财务分析
  11. spring 实现小程序抖音去水印后台
  12. border-color属性设置单边边框和综合四边边框颜色
  13. oland显卡HDMI热插拔问题分析
  14. Python一路走来 DAY15 Javascript
  15. 三次握手与四次挥手的爱恨情仇
  16. 城市之眼视觉计算技术
  17. [安卓开发] 快递物流信息布局
  18. cesium采用primitive方式加载geojson数据
  19. 91 python高级 - 作用域
  20. 【BZOJ1502】[NOI2005]月下柠檬树 Simpson积分

热门文章

  1. RPR技术介绍-ielab
  2. python title 和capitiliaze_python全栈开发从入门到放弃之字符串的应用
  3. 『迷你教程』Keras中为截断的BPTT进行序列预测
  4. RNN学习笔记(一)-简介及BPTT RTRL及Hybrid(FP/BPTT)算法
  5. PCD文件格式(The PCD (Point Cloud Data) file format)
  6. 在cmd中用PING命令时,出现'Ping' 不是内部或外部命令,也不是可运行的程序或批处理文件。...
  7. 浏览器强制刷新快捷键 ctrl+F5
  8. 单链表指针和头结点的理解
  9. patch -p1 和p0 的区别
  10. M201: MongoDB Performance chapter 3 Index Operations学习记录