Tyvj 1004 滑雪~
来源:互联网 发布:tcp ip协议 端口 编辑:程序博客网 时间:2024/05/01 10:05
Tyvj 1004
问题描述: 输入一个 r*c 的矩阵,并且矩阵中的每个元素都是
正整数,从其中某个大的元素出发,向4个方向(上下左右)
递归,直到划出一条能够通过较多数字的线,并且满足数字
从大到小。
解决方案: 其实,我们可以人为的把我们输入的每一个元素所对应
的数值当做是一座座的山峰,正如题目要求的那样,滑雪
然后尽可能从高处的山峰往低处的山峰滑行,第一次做的
时候,没看懂样例,琢磨了一段时间后,突然明白了,题目
的含义,实际上就是按照一定的路线,从最大的元素向最小的
元素走,然后记录所走的步数即可,样例很特殊,25步走出来
后,刚好构成了蛇形阵。
第一步,一一枚举每个点,看他是不是能作为我们开始滑行
的起点。
第二步,找到这个点后,向4个方向DFS,即可。
第三步,找到的那个最大的起点,就是我们的最大路线
代码: (1)在代码中,学会了一种解决搜索问题的常用方法,那就是设置
一个dis [][],数组,当我们向4个方向,也就是通常所说的
上下左右进行搜索时,我们就定义这样一个数组:
dis[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
其实很简单,,大家脑补下就行。。。。
如果所涉及的问题稍微有些复杂的话,向8个方向进行搜索
那么我们定义这样一个数组:
dis[8][2] = {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1}
,{1,-1},{1,0},{1,1}};
思路和方法类似,就是又多了4个对角线上的方向而已~
(2)并且在搜索问题中,我们还要设置一个vis[][]数组,这个
数组的大小和处理问题时所开的数组一定是等大的。
并且一开始用memset对vis数组进行初始化,可以初始化为
0或者-1,,其他的数值都不行的。
贴上模板~~
当做模板记住它~
其实在很多情况下,如果实在看不出那些大牛们的代码。
可以手模下,,虽然浪费时间,但是很容易就能理解了,
我就是这么手模过来的~~~
问题描述: 输入一个 r*c 的矩阵,并且矩阵中的每个元素都是
正整数,从其中某个大的元素出发,向4个方向(上下左右)
递归,直到划出一条能够通过较多数字的线,并且满足数字
从大到小。
解决方案: 其实,我们可以人为的把我们输入的每一个元素所对应
的数值当做是一座座的山峰,正如题目要求的那样,滑雪
然后尽可能从高处的山峰往低处的山峰滑行,第一次做的
时候,没看懂样例,琢磨了一段时间后,突然明白了,题目
的含义,实际上就是按照一定的路线,从最大的元素向最小的
元素走,然后记录所走的步数即可,样例很特殊,25步走出来
后,刚好构成了蛇形阵。
第一步,一一枚举每个点,看他是不是能作为我们开始滑行
的起点。
第二步,找到这个点后,向4个方向DFS,即可。
第三步,找到的那个最大的起点,就是我们的最大路线
代码: (1)在代码中,学会了一种解决搜索问题的常用方法,那就是设置
一个dis [][],数组,当我们向4个方向,也就是通常所说的
上下左右进行搜索时,我们就定义这样一个数组:
dis[4][2] = {{1,0},{0,1},{-1,0},{0,-1}};
其实很简单,,大家脑补下就行。。。。
如果所涉及的问题稍微有些复杂的话,向8个方向进行搜索
那么我们定义这样一个数组:
dis[8][2] = {{-1,-1},{-1,0},{-1,1},{0,-1},{0,1}
,{1,-1},{1,0},{1,1}};
思路和方法类似,就是又多了4个对角线上的方向而已~
(2)并且在搜索问题中,我们还要设置一个vis[][]数组,这个
数组的大小和处理问题时所开的数组一定是等大的。
并且一开始用memset对vis数组进行初始化,可以初始化为
0或者-1,,其他的数值都不行的。
贴上模板~~
int nx, ny; for ( int i = 0;i < 4;i++ ) { nx = x + dis[i][0]; ny = y + dis[i][1]; if ( 0 <= nx&&nx < r&&0 <= ny&&ny < c&&a[x][y] > a[nx][ny] ) { t = max( search( nx, ny ),t ); } }
当做模板记住它~
其实在很多情况下,如果实在看不出那些大牛们的代码。
可以手模下,,虽然浪费时间,但是很容易就能理解了,
我就是这么手模过来的~~~
2 0
- Tyvj 1004 滑雪~
- Tyvj 1004 滑雪(完整代码)
- tyvj 1004 滑雪
- tyvj 1004 滑雪 dfs + dp
- TYVJ P1004 - 滑雪
- Tyvj专题 P1004 滑雪
- tyvj p1004 滑雪
- P1004 滑雪 tyvj
- 滑雪(tyvj P1004)
- 【Tyvj P1004】滑雪
- |Tyvj|动态规划|P1004 滑雪
- tyvj p1004 滑雪[dp]
- tyvj 1004
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 滑雪
- 取数值的绝对值
- Netlink Socket
- Oracle笔记 之 工具
- manacher 求最长回文子串
- HDU 4930 Fighting the Landlords(扯淡模拟题)
- Tyvj 1004 滑雪~
- 【Linux】GDB调试演示过程
- 函数模板
- Android系统编译时遇到的几个.mk的疑惑。
- LightOJ 1216 圆锥体积
- hdu 4925 Apple Tree--2014 Multi-University Training Contest 6
- Fermat’s Chirstmas Theorem
- java多线程的实现
- Eclipse启动Tomcat错误:Several ports (8080, 8009) required by Tomcat v6.0 Server at localhost are already