dfs的剪枝问题
来源:互联网 发布:运动仿真软件哪个好 编辑:程序博客网 时间:2024/05/01 20:18
哈理工oj 下山 1179
Description
下面的矩阵可以想象成鸟瞰一座山,矩阵内的数据可以想象成山的高度。
可以从任意一点开始下山。每一步的都可以朝“上下左右”4个方向行走,前提是下一步所在的点比当前所在点的数值小。
例如处在18这个点上,可以向上、向左移动,而不能向右、向下移动。
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-24-23-22-21-20-19-18-17-16-15-14-13-12-11-10-9-8-7-6-5-4-3-2-1,应输出结果25。
Input
输入包括多组测试用例。
对于每个用例,第一行包含两个正整数R和C分别代表矩阵的行数和列数。(1 <= R,C <= 100)
从第二行开始是一个R行C列矩阵,每点的数值在[0,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
#include<stdio.h>#include<stdlib.h>#include<string.h>#include<iostream>#include<algorithm>#include<deque>#include<queue>using namespace std;int xx[]={1,-1,0,0};int yy[]={0,0,1,-1};int maps[100][100];int ma[100][100];int m,n;int dfs(int x,int y){ if(ma[x][y]) return ma[x][y]; for(int i=0;i<4;i++) { int xn=x+xx[i]; int yn=y+yy[i]; if(xn>=0&&xn<n&&yn>=0&&yn<m&&maps[xn][yn]>maps[x][y]) { ma[x][y]=max(dfs(xn,yn)+1,ma[x][y]);//每次都要判断一下是不是最远的距离 } } return ma[x][y];}int main(){ while(scanf("%d%d",&n,&m)==2) { memset(maps,0,sizeof(maps)); memset(ma,0,sizeof(ma)); for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { scanf("%d",&maps[i][j]); } } int man=0; for(int i=0;i<n;i++) { for(int j=0;j<m;j++) { man=max(man,dfs(i,j)); } } printf("%d\n",man+1); }}
0 0
- dfs的剪枝问题
- 八皇后问题:DFS剪枝
- 八皇后问题(DFS剪枝)
- 砝码(01背包问题的DFS剪枝)
- 幸运的袋子问题(DFS+回溯+剪枝)
- 迷宫问题:hdoj1010 DFS--剪枝实现
- HDU 2553 N皇后问题( DFS + 剪枝 )
- 搜索DFS+BFS和剪枝问题
- dfs+剪枝
- DFS剪枝
- DFS+剪枝
- DFS+剪枝
- 部分和问题 【DFS】or【贪心】【DFS+ 剪枝】
- HDU 1010第一道剪枝的DFS
- POJ1090,生日蛋糕,dfs,经典的剪枝
- HDU 1010 Dfs的精华(剪枝)
- hdu1175连连看 (超强的 剪枝+DFS)
- 朴素搜索dfs, 简单的剪枝搜索
- linux下查看nginx,apache,mysql,php的编译参数
- 网络中我关注的那些前辈们的档案(2016.12.28 Updating...)
- MySQL和Oracle的delete,truncate
- 在GridView或者ListView的Adapter中使用Glide加载图片,图片被拉伸问题
- 开启3个线程,这3个线程的ID分别为A、B、C,每个线程将自己的ID在屏幕上打印10遍,要求输出结果必须按ABC的顺序显示;如:ABCABC….依次递推
- dfs的剪枝问题
- 算法#23--整数反转
- SpringMVC 提交参数的方式和注解详述
- Logstash实践: 分布式系统的日志监控
- 安卓shadow综合控件和布局
- 使用eclipse连接mysql database explorer连接不上的解决办法以及配置
- Android 中使用IDE为Android Studio时候,后台类型从double 改成 int,但是客户端还是显示double问题(JAVA修改Model类型,但是无效)
- C++ 头文件格式和函数注释格式
- 如何使用百度加固服务