nyoj_10_skiing_201405181748
skiing
- 描述
- Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
1 2 3 4 516 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 map[][],visit[][];
int m,n;
int a[]={,,,-};
int b[]={,,-,};
int dfs(int x,int y)
{
int i,j,s,xx,yy;
if(visit[x][y]>)
return visit[x][y];
for(i=;i<;i++)
{
xx = x+a[i];
yy = y+b[i];
if(xx>=&&xx<m&&yy>=&&yy<n)
{
if(map[x][y]<map[xx][yy])
{
s = dfs(xx,yy);
if(visit[x][y]<s+)
visit[x][y]=s+;
}
}
}
return visit[x][y];
}
int main()
{
int T;
scanf("%d",&T);
while(T--)
{
int i,j,max=;
memset(map,,sizeof(map));
memset(visit,,sizeof(visit));
scanf("%d%d",&m,&n);
for(i=;i<m;i++)
for(j=;j<n;j++)
{
scanf("%d",&map[i][j]);
visit[i][j]=;
}
for(i=;i<m;i++)
for(j=;j<n;j++)
{
dfs(i,j);
if(visit[i][j]>max)
max=visit[i][j];
}
printf("%d\n",max);
}
return ;
}
//记忆化搜索 + 动态规划
nyoj_10_skiing_201405181748的更多相关文章
随机推荐
- Java文件上传(基础性)
/** * * 上传文件 * */ public class FileUploadServlet2 extends HttpServlet { protected void doGet(HttpSer ...
- colormap画出的图不是彩色问题
针对matlab2017渲染出的彩色图是黑白的问题. t=labels; t(tstSet(:,end-))=Relabels; t=reshape(t,,); t=t'; figure imshow ...
- R in action读书笔记(22)第十六章 高级图形进阶(下)
16.2.4 图形参数 在lattice图形中,lattice函数默认的图形参数包含在一个很大的列表对象中,你可通过trellis.par.get()函数来获取,并用trellis.par.set() ...
- Android下多彩的StatusView的实现
概述 在上一个博文 Anroid沉浸式状态栏中提到了,画了一个图,这个图简单将我们的状态栏分为不同的2个维度来看状态栏.其中涉及的概念我不在赘诉,请返到Anroid沉浸式状态栏再去认识下这几个概念.本 ...
- jQuery之Validation表单验证插件使用
<!DOCTYPE html><html xmlns="http://www.w3.org/1999/xhtml"><head> <met ...
- 套接字、UDP通信、TCP通信、TCP/IP协议簇
一.套接字(socket) 1.英语单词socket:n.插座:穴:v.插入插座 2.套接字就是源IP地址和目的IP地址.源端口号和目的端口号的组合,是通过传输层进行通信的.IP指定电脑,端口指定某一 ...
- uiviewcontroller顶级布局控制
@available(iOS 7.0, *) open var edgesForExtendedLayout: UIRectEdge // Defaults to UIRectEdgeAll @ava ...
- Python界面编程之六----布局
布局(转载于–学点编程吧)通过实践可知采用了布局之后能够让我们的程序在使用上更加美观,不会随着窗体的大小发生改变而改变,符合我们的使用习惯. 绝对位置程序员以像素为单位指定每个小部件的位置和大小. 当 ...
- CAD参数绘制固定批注(网页版)
js中实现代码说明: 自定义实体绘制函数 function ExplodeFun(pCustomEntity, pWorldDraw, txt) { var sGuid = pCustomEntity ...
- 他山之石:D3DX书籍推荐
一.DirectX9.0.3D游戏开发编程基础(龙书) 这本书网上评论很好,当初作为入门书看确实还不错,但是看得有点稀里糊涂的.现在回过头来看,它有些地方省略了,所以还得自己多多总结,总得来说还是值得 ...