滑雪(POJ 1088 记忆化搜索)
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 88094 | Accepted: 33034 |
Description
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更长。事实上,这是最长的一条。
Input
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 <cstring>
#include <iostream>
#include <algorithm>
#include <cstdio>
using namespace std;
#define Max 105
int map[Max][Max],len[Max][Max];
int dx[]={,,-,},dy[]={,-,,};
bool vis[Max][Max];
int r,c;
int dfs(int x,int y)
{
//cout<<x<<" "<<y<<endl;
int i,j;
if(vis[x][y]==)
return len[x][y];
else
{
vis[x][y]=;
for(i=;i<;i++)
{
int xx=x+dx[i];
int yy=y+dy[i];
if(xx>=&&xx<=r&&yy>=&&yy<=c&&map[xx][yy]<map[x][y])
len[x][y]=max(len[x][y],dfs(xx,yy)+);
}
return len[x][y];
}
}
int main()
{
int i,j;
int sum;
freopen("in.txt","r",stdin);
while(scanf("%d%d",&r,&c)!=EOF)
{
sum=-;
memset(vis,,sizeof(vis));
for(i=;i<=r;i++)
for(j=;j<=c;j++)
{
scanf("%d",&map[i][j]);
len[i][j]=;
}
for(i=;i<=r;i++)
{
for(j=;j<=c;j++)
{
if(vis[i][j]==)
{
vis[i][j]=;
for(int k=;k<;k++)
{
int xx=i+dx[k];
int yy=j+dy[k];
if(xx>=&&xx<=r&&yy>=&&yy<=c&&map[xx][yy]<map[i][j])
len[i][j]=max(len[i][j],dfs(xx,yy)+);
}
}
}
}
for(i=;i<=r;i++)
{
for(j=;j<=c;j++)
{
sum=max(sum,len[i][j]);
// cout<<len[i][j]<<" ";
}
// cout<<endl;
}
printf("%d\n",sum);
}
return ;
}
滑雪(POJ 1088 记忆化搜索)的更多相关文章
- poj 1088(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 88560 Accepted: 33212 Description ...
- 洛谷P1434滑雪题解及记忆化搜索的基本步骤
题目 滑雪是一道dp及记忆化搜索的经典题目. 所谓记忆化搜索便是在搜索的过程中边记录边搜索的一个算法. 当下次搜到这里时,便直接使用. 而且记忆化搜索一定要满足无后效性,为什么呢,因为如果不满足无后效 ...
- ACM学习历程—POJ1088 滑雪(dp && 记忆化搜索)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- POJ 1191 记忆化搜索
(我是不会告诉你我是抄的http://www.cnblogs.com/scau20110726/archive/2013/02/27/2936050.html这个人的) 一开始没有想到要化一下方差的式 ...
- POJ1088滑雪(dp+记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86411 Accepted: 32318 Description ...
- TYVJ P1004 滑雪 Label:记忆化搜索
背景 成成第一次模拟赛 第三道 描述 trs喜欢滑雪.他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形.为了得到更快的速度,滑行的路线必须向下倾斜. ...
- Test for Job (poj 3249 记忆化搜索)
Language: Default Test for Job Time Limit: 5000MS Memory Limit: 65536K Total Submissions: 9733 A ...
- POJ 2704 Pascal's Travels 【DFS记忆化搜索】
题目传送门:http://poj.org/problem?id=2704 Pascal's Travels Time Limit: 1000MS Memory Limit: 65536K Tota ...
- POJ 1579 Function Run Fun 【记忆化搜索入门】
题目传送门:http://poj.org/problem?id=1579 Function Run Fun Time Limit: 1000MS Memory Limit: 10000K Tota ...
随机推荐
- swift中的&-备
参数的传递引用 类是引用类型,其他的数据类型如整型.浮点型.布尔型.字符.字符串.元组.集合.枚举和结构体全部是值类型. 有的时候就是要将一个值类型参数以引用方式传递,这也是可以实现的,Swift提供 ...
- ServletConfig对象 【通过此对象获取到web.xml中的信息】
用途: 1)想让当前的Servlet读取一些在web.xml文件配置的初始化参数时, 可以使用ServletConfig对象,他是Servlet运 ...
- GO的MAP字典简单用法示例
package main import "fmt" type PersonInfo struct { ID string Name string Address string } ...
- 新技术:Qt for Native Client (and emscripten)
http://blog.qt.io/blog/2015/09/25/qt-for-native-client-and-emscripten/
- C#中使用SendMessage进行进程通信的实例
原文:C#中使用SendMessage进行进程通信的实例 1 新建解决方案SendMessageSecondExample 在解决方案下面新建两个项目:Sender和Receiver,两者的输出类型均 ...
- codility上的问题 (19)Sigma 2012
题目: 像最大直方图一样给定一个数组是每个单位长度上的高度,求至少几个矩形可以拼出这个形状. 例如:给出的数组 H[0] = 8 H[1] = 8 H[2] = 5 H[3] = 7 H[4] = 9 ...
- MongoDB命令行操作
本文专门介绍MongoDB的命令行操作.其实,这些操作在MongoDB官网提供的Quick Reference上都有,但是英文的,为了方便,这里将其稍微整理下,方便查阅. 这里用来做测试的是远端(10 ...
- Day56
今天干啦啥呢 早上七点起来 天气冷了真起不来啊 再坚持坚持就好了 今天上午九点开始考数据库 我去 大学四年第一次感觉到这样的爽 作弊的爽啊 也没有完全的作弊啦 是开卷考试,反正做的很顺利了. 我和胡 ...
- Quartz集成springMVC 的方案二(持久化任务、集群和分布式)
Quartz是一个开放源码项目,专注于任务调度器,提供了极为广泛的特性如持久化任务,集群和分布式任务等. Quartz核心是调度器,还采用多线程管理. 1.持久化任务:当应用程序停止运行时,所有调度信 ...
- C# 酒鬼买酒喝,瓶盖和空瓶子可以换新的酒
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Syst ...