skiing

时间限制:3000 ms  |  内存限制:65535 KB
难度:5

描述
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更长。事实上,这是最长的一条。

输入
第一行表示有几组测试数据,输入的第二行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
后面是下一组数据;
输出
输出最长区域的长度。
样例输入
1
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
样例输出
25
来源
经典题目
上传者
iphxer

简单深搜,配合动态规划。

# include <stdio.h>
# include <string.h>
int max(int a, int b){return a>b?a:b;}
int n, m, map[101][101], dp[101][101], next[4][2]={{1,0},{0,1},{-1,0},{0,-1}};
int dfs(int x, int y)
{int i, mx, my;if(dp[x][y])return dp[x][y];for(i=0; i<4; ++i){mx = x + next[i][0];my = y + next[i][1];if(mx<1 || my<1 || mx>n || my>m)continue;if(map[mx][my] < map[x][y])dp[x][y] = max(dp[x][y], dfs(mx, my));}++dp[x][y];return dp[x][y];
}
int main()
{int t, i, j, imax;scanf("%d",&t);while(t--){imax = 0;memset(dp, 0, sizeof(dp));scanf("%d%d",&n,&m);for(i=1; i<=n; ++i)for(j=1; j<=m; ++j)scanf("%d",&map[i][j]);for(i=1; i<=n; ++i)for(j=1; j<=m; ++j)imax = max(dfs(i, j), imax);printf("%d\n",imax);}return 0;
}

转载于:https://www.cnblogs.com/junior19/p/6730086.html

NYOJ10: skiing(DFS + DP)相关推荐

  1. 滑雪问题(dfs+dp)

    滑雪问题(dfs+dp) 题目引入 佑少喜欢上网冲浪.最近他在贴吧得知滑铲可以消灭老虎,于是决定每天都到山坡上练习滑铲.不过佑少还没学会反重力滑铲,所以滑的区域必须向下倾斜,而且当滑到坡底,他不得不再 ...

  2. LeetCode 494. 目标和(DFS+DP)

    文章目录 1. 题目 2. 解题 2.1 递归 2.2 DP 1. 题目 给定一个非负整数数组,a1, a2, -, an, 和一个目标数,S.现在你有两个符号 + 和 -.对于数组中的任意一个整数, ...

  3. codevs 1066 引水入城(DFS+DP)

    codevs 1066 引水入城 题目描述 Description 在一个遥远的国度,一侧是风景秀美的湖泊,另一侧则是漫无边际的沙漠.该国的行政 区划十分特殊,刚好构成一个N行M列的矩形,如上图所示, ...

  4. (DFS+DP)滑雪(poj1088)

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

  5. [BZOJ1616][Usaco2008 Mar]Cow Travelling游荡的奶牛(dfs||dp)

    题目描述 传送门 题解 看题了之后算了算,步数只有15步,似乎加了这个剪枝之后状态很少啊= =于是直接开始码bfs.码出来了之后发现对拍大数据老是出错,而且把剪枝加的越少数越小!原来我忽略了一个非常重 ...

  6. (dfs/dp)P2327 [SCOI2005]扫雷

    相信大家都玩过扫雷的游戏.那是在一个n×m的矩阵里面有一些雷,要你根据一些信息找出雷来.万圣节到了,"余"人国流行起了一种简单的扫雷游戏,这个游戏规则和扫雷一样,如果某个格子没有雷 ...

  7. Perfect service(树形dp)

    Perfect service(树形dp) 有n台机器形成树状结构,要求在其中一些机器上安装服务器,使得每台不是服务器的计算机恰好和一台服务器计算机相邻.求服务器的最小数量.n<=10000. ...

  8. HDU 1520 Anniversary party(树形dp)

    HDU 1520 Anniversary party(树形dp) 树形dp第一题!!! 题意很清晰,思路也很明确.很容易找到根节点,即最大的boss,通过根节点向下dp. 状态转移方程: int to ...

  9. 「SDOI2016」储能表(数位dp)

    「SDOI2016」储能表(数位dp) 神仙数位 \(dp\) 系列 可能我做题做得少 \(QAQ\) \(f[i][0/1][0/1][0/1]\) 表示第 \(i\) 位 \(n\) 是否到达上界 ...

最新文章

  1. 【C】——线程引入 pthread_self 和 pthread_equal 原因 ——解决不同平台的问题!
  2. 社交网络图挖掘1--将社交网络看作图及其聚类
  3. 右值引用 移动构造函数 移动语义
  4. Progressive Web App是一个利用现代浏览器的能力来达到类似APP的用户体验的技术——不就是chrome OS吗?...
  5. oracle从一个表insert语句,Oracle 使用PLSQL 导出 一个表的insert 语句
  6. 图片怎么等比缩放_mac图像缩放工具Teorex iResizer
  7. Spring中@Resource与@Autowired、@Qualifier的用法与区别
  8. 判别分析分为r型和q型吗_电流互感器天天见,但是你真正了解和知道它的一些注意事项吗?...
  9. 新年快乐轮播特效html,基于owl-carousel的卡片水平轮播展示特效
  10. php 远程函数,php 远程图片保存到本地的函数类
  11. jfinal中Interceptor拦截器的使用
  12. 基于RV1126平台imx291分析 --- media部件注册 rkcif_mipi
  13. 不需要各种代码的MATLAB语法高亮的设置,简单实用
  14. 韦东山之学习笔记——NOR Flash
  15. 《CSS Secrets》读书笔记(2)
  16. mysql中single是什么意思_single是什么意思
  17. CATIA二次开发过程中几个问题
  18. linux pam鉴定令牌错误,linux – chsh:PAM身份验证失败
  19. 动态切换 web 报表中的统计图类型
  20. Ceph分布式存储详解

热门文章

  1. 微信小程序点击按钮实现手机振动功能
  2. CNN:测试一下YoloV3
  3. 子空间:群论的角度解释无监督深度学习
  4. Ruby. Vs . Python
  5. boost多线程使用简例
  6. java 字段映射注解_mybatis注解开发中实体属性和表字段不对应问题
  7. Captcha插件后门分析和修复
  8. 修改SSO管理员密码
  9. MySQL实现差集(Minus)和交集(Intersect)
  10. 搭建基于spring MVC框架 + RESTful架构风格技术总结