`

南阳理工OJ 10 sking 深度优先遍历 记忆化搜索

 
阅读更多

连接:   http://acm.nyist.net/JudgeOnline/problem.php?pid=10

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

 

 

 


#include<stdio.h>
#include<string.h>
int map[110][110];
int result[110][110];
int fang[4][2]={-1,0,1,0,0,-1,0,1};
int term;
int dfs(int i,int j)
{
	int k,ii,jj;
	if(result[i][j]>0)return(result[i][j]);
	for(k=0;k<4;k++)
	{
		ii=i+fang[k][0];
		jj=j+fang[k][1];
		if(map[ii][jj]!=-1&&map[i][j]>map[ii][jj])
		{
			term=dfs(ii,jj)+1;
			if(result[i][j]<term)result[i][j]=term;
		}
	}
	return(result[i][j]);//这句话忘记写了,让我调试的好辛苦!!
}
int main()
{
//	freopen("in.txt","r",stdin);
	int T;
	int i,j;
	int n,m;
	int max;
	scanf("%d",&T);
	while(T--)
	{
		max=-1;
		memset(map,-1,sizeof(map));
		memset(result,0,sizeof(result));
		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++)
			{
				dfs(i,j);
				if(result[i][j]>max)max=result[i][j];
			}
		printf("%d\n",max+1);
	}
	return(0);
}

 

1
10
分享到:
评论

相关推荐

    南阳理工oj离线题库

    南阳理工oj离线题库是为编程爱好者和学习者提供的一种资源,主要用于练习和提高编程技能。这个离线题库通常包含多种类型的编程题目,涵盖了数据结构、算法、计算机科学基础等多个方面。在这个环境中,用户可以不受...

    南阳理工学院OJ_个人AC代码包(Java提交)

    【南阳理工学院OJ_个人AC代码包(Java提交)】是针对Java初学者的一份宝贵资源,它包含了参与ACM国际大学生程序设计竞赛(ICPC)时在南阳理工学院在线评测系统(OJ)上获得正确答案的代码实例。这些代码展示了如何用...

    南阳理工学院OJ第1版解题报告V1.0.pdf

    ### 南阳理工学院OJ第1版解题报告概览 #### 1. A+B Problem 虽然解题思路在报告中被省略,但我们可以推测这是一个基础的数学加法问题,涉及到数字输入与基本算术操作。此类题目旨在测试初学者对编程语言基本输入...

    南阳理工oj stl练习ac代码

    南阳理工的OJ平台可能包含ACM风格的题目,比如动态规划、图论、搜索等问题,通过AC代码,我们可以学习如何在有限的时间内构造高效解决方案。 6. NYOJ系统: NYOJ(南阳理工在线判题系统)是南阳理工学院开发的OJ...

    湖南理工oj题解(学习用)-共230道题

    【标题】:“湖南理工oj题解(学习用)-共230道题”揭示了这是一个针对湖南理工大学在线编程竞赛平台(Online Judge,简称OJ)的题解集合,包含了230个不同题目。这类资源通常由参赛者或者经验丰富的程序员整理,...

    哈理工oj 1084百步穿杨

    哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案哈理工OJ1084答案

    oj刷题 西安理工大学学生在线实验系统编程题答案(超级详细)

    这个“oj刷题”压缩包文件很可能是包含了西安理工大学在线实验系统中的一些典型题目,包括但不限于排序算法(如冒泡排序、快速排序、归并排序)、搜索算法(如二分查找、深度优先搜索、广度优先搜索)、图论问题(如...

    湖南理工学院OJ-小鱼比可爱

    湖南理工学院小鱼比可爱OJ题

    基于Laravel 5.0的OJ题解网站 , 目前涵盖安科OJ,南阳OJ,杭电OJ ,北大OJ,浙大OJ.zip

    【描述】中提到的“目前涵盖安科OJ,南阳OJ,杭电OJ,北大OJ,浙大OJ”意味着这个题解网站已经集成了多个知名OJ平台的题目,用户可以在一个统一的平台上找到这些不同OJ的题目并查看解决方案。安科OJ、南阳OJ、杭电OJ...

    DFS:depth first search深度优先搜索(迷宫寻路) BFS:breadth first search宽度优先搜

    深度优先搜索(DFS,Depth First Search)和宽度优先搜索(BFS,Breadth First Search)是图论和算法中的两种基本搜索策略,常用于解决迷宫寻路、树遍历以及网络爬虫等问题。这两种算法各有其特点,适用于不同的场景...

    北大oj 题目分类

    1. **图遍历**:深度优先遍历(DFS)和广度优先遍历(BFS),如`poj1094`的拓扑排序。 2. **最短路径算法**:Dijkstra、Bellman-Ford、Floyd、堆优化的Dijkstra,用于求解两点间的最短路径,如`poj1860`。 3. **最小...

    图的按录入顺序深度优先搜索.cpp

    西南科技大学OJ题

    山东理工大学2016级OJ题1832

    10. **输入输出流控制**:在程序中,使用 `scanf` 控制输入流,当输入结束时,`scanf` 返回 `EOF`,可以用来判断输入是否结束,例如在解一元二次方程的程序中。 以上是针对题目中所涉及的C语言编程和数学知识的详细...

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    趣味题:柱状图排序 西安理工大学学生在线实验系统 oj

    竞赛题集南阳OJ部分习题及解答其他oj试题及解答

    竞赛题集南阳OJ部分习题及解答其他oj试题及解答提取方式是百度网盘分享地址

    西南科技大学SWUST OJ 数据结构 图相关题题解 图.zip

    SWUST OJ : 1055、1056、1057、1058、1059、1060、1061、1062、1063、1064、1065、1066、1067、1068、1069、1070、1071、1072、1075、1086题答案

    华为OJ题目集合

    高级题目则可能需要深入理解数据结构,如链表、堆、栈、队列、图等,并结合高级算法,如深度优先搜索(DFS)、广度优先搜索(BFS)、贪心策略和动态规划等。 通过参与华为OJ的练习,用户不仅可以提升自身的编程技能...

    OJ系统汇总-2021-10-5.pdf

    OJ系统汇总-2021-10-5.pdf 本文将对OJ系统汇总-2021-10-5.pdf的标题、描述、标签和部分内容进行详细的解读和分析,并生成相关的知识点。 1. 标题:OJ系统汇总-2021-10-5.pdf 标题直接指出该文件是关于OJ系统的汇总...

    oj题.zip

    每一道题目都可能包含多种解题策略,如动态规划、贪心算法、回溯、深度优先搜索、广度优先搜索、链表操作、二叉树操作、字符串处理、图论以及基本的数据结构如数组、栈、队列、哈希表等。通过深入研究这些解决方案,...

    建二叉树及对二叉树进行遍历

    至于深度,可以采用层次遍历或递归的方法,每次遇到新的最深节点,就更新最大深度。 对于二叉树的遍历,有三种基本方法:前序遍历、中序遍历和后序遍历。 1. **前序遍历**(根-左-右):首先访问根节点,然后递归...

Global site tag (gtag.js) - Google Analytics