Poj-1088-滑雪
此题为动态规划加搜索型题目
采用记忆化搜索的方式
dp[i][j]表示从坐标为 i,j 开始滑所能达到的最长距离
则dp[i][j]=max(dp[i-1][j],dp[i][j+1],dp[i+1][j],dp[i][j-1])
代码如下:
#include<stdio.h>
int dir[][]= {{,},{,},{-,},{,-}}; //初始化偏移量
int dp[][]; //dp[x][y]表示从坐标x,y开始滑所达到的最大长度
int map[][];
int n,m;
int dfs(int x,int y)
{
if(dp[x][y]) //若已经搜过,返回
return dp[x][y];
int tx,ty,i;
for(i=; i<; i++) //搜索x,y的上,下,左,右
{
tx=x+dir[i][];
ty=y+dir[i][];
if(tx>= && tx<n && ty>= && ty<m && map[tx][ty]<map[x][y]) //未出界且能往tx,ty滑
{
int temp=dfs(tx,ty); //从tx,ty开始滑
if(temp>=dp[x][y]) //若比从x,y开始滑的距离长或相等
{
dp[x][y]=temp+;
}
}
}
return dp[x][y];
}
int main()
{
int i,j,t;
while(scanf("%d%d",&n,&m)!=EOF)
{
for(i=; i<n; i++)
for(j=; j<m; j++)
{
scanf("%d",&map[i][j]);
dp[i][j]=;
}
int max=-;
for(i=; i<n; i++) //将所有地方遍历一遍,找出最大长度
for(j=; j<m; j++)
{
t=dfs(i,j);
if(t>max)
max=t;
}
//printf("%d\n",dp[0][0]); 测试数据dp[0][0]为最低地方
printf("%d\n",max+); //最低的地方dp值为0,所以最后加1
}
return ;
}
Poj-1088-滑雪的更多相关文章
- POJ 1088 滑雪(记忆化搜索+dp)
POJ 1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 107319 Accepted: 40893 De ...
- POJ 1088 滑雪(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 92384 Accepted: 34948 Description ...
- POJ 1088 滑雪 【记忆化搜索经典】
题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...
- POJ 1088 滑雪 -- 动态规划
题目地址:http://poj.org/problem?id=1088 Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当 ...
- OpenJudge/Poj 1088 滑雪
1.链接地址: bailian.openjudge.cn/practice/1088 http://poj.org/problem?id=1088 2.题目: 总Time Limit: 1000ms ...
- poj 1088 滑雪(区间dp+记忆化搜索)
题目链接:http://poj.org/problem?id=1088 思路分析: 1>状态定义:状态dp[i][j]表示在位置map[i][j]可以滑雪的最长区域长度: 2>状态转移方程 ...
- POJ 1088 滑雪 (记忆化搜索)
题目链接:http://poj.org/problem?id=1088 题意很好懂,就是让你求一个最长下降路线的长度. dp[i][j]记录的是i j这个位置的最优的长度,然后转移方程是dp[i][j ...
- poj 1088 滑雪 DP(dfs的记忆化搜索)
题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 ...
- POJ 1088 滑雪 DFS 记忆化搜索
http://poj.org/problem?id=1088 校运会放假继续来水一发^ ^ 不过又要各种复习,功课拉下了许多 QAQ. 还有呀,就是昨天被一个学姐教育了一番,太感谢了,嘻嘻^ ^ 好了 ...
- POJ 1088滑雪
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 89168 Accepted: 33474 Description ...
随机推荐
- JQuery的Ajax跨域请求原理概述及实例
今天在项目中需要做远程数据加载并渲染页面,直到开发阶段才意识到ajax跨域请求的问题,隐约记得Jquery有提过一个ajax跨域请求的解决方式,于是即刻翻出Jquery的API出来研究,发 JQuer ...
- mvc多个按钮的提交方法
转载地址:http://www.cnblogs.com/wuchang/archive/2010/01/29/1658916.html 有时候会遇到这种情况:在一个表单上需要多个按钮来完成不同的功能, ...
- python之fabric(二):执行模式(转)
执行模式 执行模式可以让你在多个主机上执行多个任务. 执行策略: 默认fabric是单个有序地执行方法,其行为如下: 1. 创建一系列任务,通过fab任务执行要执行的任务: 2. 根据主机列表定义,去 ...
- mysql 主从复制 实践
异步主从复制 主从部署步骤: 备份还原 使用mysqldump或者xtrabackup 把主库现有基础数据还原到从库 授权 grant replication slave on *.* 给从库一个 ...
- 树莓派USB摄像头与camera模块对比
http://www.cnblogs.com/weixinforspurs/p/5575962.html ——————————————————————————————————————————————— ...
- DIRECTORY_SEPARATOR 和 PATH_SEPARATOR的区别
DIRECTORY_SEPARATOR:目录分隔符,linux上就是’/’ windows上是’\’ PATH_SEPARATOR:路径分隔符,include多个路径使用,在win下,当你要in ...
- 上传文件(单文件)(FormData)(前端代码+.NET服务器端)
由于样式需要不能直接用file,只能用文本框+按钮 <form class="form-horizontal form-bordered form-row-strippe" ...
- asp.net mvc 如何将controller 里一个action 返回值为list<>的值输出到view
在controller中:return View(myRole.ToList());在view文件开头加上:@model IEnumerable<LTXYCallCenter.Models.Ro ...
- css属性word-spacing和letter-spacing的区别
word-spacing和letter-spacing用来定义单词或者字母之间的水平空白间隔.顾名思义,word-spacing定义了单词之间的空白,例如: <div style="w ...
- setTimeout注意事项
<script type="text/javascript"> function show(v){ alert(v); } func ...