POJ1088:滑雪
| Time Limit: 1000MS | Memory Limit: 65536K | |
| Total Submissions: 82112 | Accepted: 30706 |
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
题意是要在整个方格中的数中,找到递减的最长的那条路,记录其最长路的长度。
感觉这个题就是一个深度搜索,一开始的时候,也是没思路。然后看了其他人的思路之后,自己动手写了一个,调试一下之后才发现很神奇地就AC了。
代码:
#include <iostream>
using namespace std; int DP[200][200];
int value[200][200];
int used[200][200]; int R,C; void dfs(int i,int j)
{
int max_num=0; used[i][j] = 1; if(i>1 && value[i][j]> value[i-1][j])
{
if(!used[i-1][j])
dfs(i-1,j);
max_num = max(DP[i-1][j],max_num);
} if(i<R && value[i][j]> value[i+1][j])
{
if(!used[i+1][j])
dfs(i+1,j);
max_num = max(DP[i+1][j],max_num);
} if(j>1 && value[i][j]> value[i][j-1])
{
if(!used[i][j-1])
dfs(i,j-1);
max_num = max(DP[i][j-1],max_num);
} if(j<C && value[i][j]> value[i][j+1])
{
if(!used[i][j+1])
dfs(i,j+1);
max_num = max(DP[i][j+1],max_num);
} DP[i][j]=max_num+1; } int main()
{ memset(used,0,sizeof(used));
memset(DP,0,sizeof(DP));
memset(value,0,sizeof(value));
int i,j;
cin>>R>>C; for(i=1;i<=R;i++)
{
for(j=1;j<=C;j++)
{
cin>>value[i][j];
}
} for(i=1;i<=R;i++)
{
for(j=1;j<=C;j++)
{
if(!used[i][j])
dfs(i,j);
}
}
int max_num=0;
for(i=1;i<=R;i++)
{
for(j=1;j<=C;j++)
{
if(DP[i][j]>max_num)
max_num = DP[i][j];
}
}
cout<<max_num<<endl; return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
POJ1088:滑雪的更多相关文章
- POJ1088 滑雪
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- POJ1088滑雪(dp+记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86411 Accepted: 32318 Description ...
- POJ1088滑雪(记忆化搜索+DFS||经典的动态规划)
Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 84297 Accepted: 31558 Description M ...
- POJ1088滑雪
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- [POJ1088] 滑雪(递归dp)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- POJ-1088 滑雪 (记忆化搜索,dp)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 86318 Accepted: 32289 Description Mich ...
- poj1088 滑雪 解题报告
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 77423 Accepted: 28779 Description ...
- ACM学习历程—POJ1088 滑雪(dp && 记忆化搜索)
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
- poj1088滑雪最短路径
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 97281 Accepted: 36886 Description ...
- 经典DP问题--poj1088滑雪
Description Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激.可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你.Michael想知道 ...
随机推荐
- 好用的log打印类
package com.huawei.network.ott.weixin.util; import android.util.Log; public final class DebugLog { / ...
- Spark 写 Hive table 非常慢【解决】
代码如下: dataFrame.createOrReplaceTempView("view_page_utm") val sql = s""" |in ...
- 1-1SpringBoot简介
Spring Boot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程.该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置.通过 ...
- .net设计模式
1.单例模式 public sealed class Singleton { static intance=null; static readonly object padlock=new objec ...
- Linux --xrandr command
Source: https://www.x.org/archive/current/doc/man/man1/xrandr.1.xhtml https://blog.csdn.net/syh_486_ ...
- linux 串口通信 编程详解
计算机串口的引脚说明 序号 信号名称 符号 流向 功能 3 发送数据 TXD DTE→DCE DTE发送串行数据 2 接收数据 RXD DTE←DCE DTE 接收串行数据 7 请求发送 RTS DT ...
- eclipse安装SVN插件的两种方法
eclipse里安装SVN插件,一般来说,有两种方式: 直接下载SVN插件,将其解压到eclipse的对应目录里 使用eclipse 里Help菜单的“Install New Software”,通过 ...
- [经验] 使用 jQuery+JSON 实现国际化
技术选型关键词: [spring boot] [jQuery] [JSON] [JSP] 前言: 关于国际化, 我在一开始的时候就有一个误解, 我认为所谓国际化就是编写一段高技术含量的代码, 然后这 ...
- ch5 对链接应用样式
简单的链接样式 对链接应用样式最容易的方式是:使用锚类型选择器,例如 a {color:red;} 链接伪类选择器:1.:link:寻找没有被访问过的链接2.:visited:寻找被访问过的链接 动态 ...
- django中添加日志功能
官方文档 猛戳这里 在settings中配置以下代码 #LOGGING_DIR 日志文件存放目录 LOGGING_DIR = "logs" # 日志存放路径 if not os.p ...