POJ 1088
http://poj.org/problem?id=1088
一道中文题,这道题如果不限时的话,是个简单的搜索,但限时的话,就要用记忆化搜索
所谓记忆化搜索就是对每一次搜索的结果进行记录,然后之后的如果需要使用到这次搜索的结果的话,就可以直接使用,不需要再去搜索,可以减少很多时间
#include <stdio.h>
#include <iostream>
#include <string.h> using namespace std;
int cub[][];
bool jud[][];
int dis[][]; int m,n,max1,x,y,ans; int dfs(int i,int j){
if(cub[i-][j]<cub[i][j]){
if(!jud[i-][j]) { //这个就是我的记忆化搜索,把以前搜索到的结果,直接使用就可以。
ans+=dis[i-][j];
if(ans>dis[x][y]) dis[x][y]=ans;
ans-=dis[i-][j];
}
else {
ans++;
dfs(i-,j);
if(ans>dis[x][y]) dis[x][y]=ans;
ans--;
}
}
if(cub[i+][j]<cub[i][j]){
if(!jud[i+][j]) {
ans+=dis[i+][j];
if(ans>dis[x][y]) dis[x][y]=ans;
ans-=dis[i+][j];
}
else {
ans++;
dfs(i+,j);
if(ans>dis[x][y]) dis[x][y]=ans;
ans--;
}
}
if(cub[i][j-]<cub[i][j]){
if(!jud[i][j-]) {
ans+=dis[i][j-];
if(ans>dis[x][y]) dis[x][y]=ans;
ans-=dis[i][j-];
}
else {
ans++;
dfs(i,j-);
if(ans>dis[x][y]) dis[x][y]=ans;
ans--; }
}
if(cub[i][j+]<cub[i][j]){
if(!jud[i][j+]) {
ans+=dis[i][j+];
if(ans>dis[x][y]) dis[x][y]=ans;
ans-=dis[i][j+];
}
else {
ans++;
dfs(i,j+);
if(ans>dis[x][y]) dis[x][y]=ans;
ans--; }
}
jud[x][y]=false; //每一个搜索后,对那个那个搜索后的点进行标记
return ;
}
int main(){
scanf("%d%d",&m,&n);
memset(dis,,sizeof(dis));
memset(jud,false,sizeof(jud));
memset(cub,,sizeof(cub)); //初始化1的目的就是边界。把那些边界的值都赋值为很大。memset赋值1的话,cub里面的数不是1.
max1=;
for(int i=;i<=m;i++)
for(int j=;j<=n;j++){
scanf("%d",&cub[i][j]);
dis[i][j]=;
jud[i][j]=true;
}
for(x=;x<=m;x++)
for(y=;y<=n;y++){
ans=;
dfs(x,y);
if(max1<dis[x][y]) max1=dis[x][y];
}
printf("%d\n",max1);
return ;
}
POJ 1088的更多相关文章
- POJ 1088 滑雪(记忆化搜索)
滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 92384 Accepted: 34948 Description ...
- POJ 1088 滑雪(记忆化搜索+dp)
POJ 1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 107319 Accepted: 40893 De ...
- POJ 1088 滑雪 (记忆化搜索)
题目链接:http://poj.org/problem?id=1088 题意很好懂,就是让你求一个最长下降路线的长度. dp[i][j]记录的是i j这个位置的最优的长度,然后转移方程是dp[i][j ...
- 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 (dfs+记忆化) 滑雪
题目;http://poj.org/problem?id=1088 感觉对深搜还不太熟练,所以练习一下,类似于连连看的那题,注意的是所求的是最大达长度,并不是从最大的或者最小的点出发得到的就是最长的路 ...
- POJ 1088 滑雪 【记忆化搜索经典】
题目链接:http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS Memory Limit: 65536K Total Submissions: ...
- poj 1088 滑雪 DP(dfs的记忆化搜索)
题目地址:http://poj.org/problem?id=1088 题目大意:给你一个m*n的矩阵 如果其中一个点高于另一个点 那么就可以从高点向下滑 直到没有可以下滑的时候 就得到一条下滑路径 ...
随机推荐
- MVC 随记
2014-09-04 [1] Json var contact = new Object(); contact.firstname = "Jesper"; contact.surn ...
- Simple colum formatting in Yii 2 GridView
A very important widget in the business apps development is the GridView control. In this post I wil ...
- 本地wampserver如何配置伪静态
本地wamp实现虚拟主机后,我把自己的站放进去就出现了500错误看日志看到.htaccess: Invalid command ‘RewriteEngine’, perhaps misspelled ...
- JavaScript日期集合(今日,昨日,本周一,周末 ,月初,月末)
闲聊:新年第一天上班,看着自己15年年底写的代码,真心觉得很烂,因为年底没时间去写,一想着做后台管理需要获取一周的开始和结束日期,就慌了,项目赶着测试呢,还有好多事情未做,就直接抄袭了网上的一段错误代 ...
- 大熊君大话NodeJS之------Stream模块
一,开篇分析 流是一个抽象接口,被 Node 中的很多对象所实现.比如对一个 HTTP 服务器的请求是一个流,stdout 也是一个流.流是可读,可写或兼具两者的. 最早接触Stream是从早期的un ...
- 密码学初级教程(六)数字签名 Digital Signature
密码学家工具箱中的6个重要的工具: 对称密码 公钥密码 单向散列函数 消息认证码 数字签名 伪随机数生成器 提问: 有了消息认证码为什么还要有数字签名? 因为消息认证码无法防止否认.消息认证码可以识别 ...
- Redhat系统网络配置
1.RedHat系统的网络配置文件/etc/sysconfig/network-scirpts/ifcfg-<interface-name>文件 DEVICE=eth0 ...
- javascript 2048游戏
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- GridView控件隐藏列
GridView隐藏列visible="false" 后你就无法取得这列的值了 下面是迄今为止最简洁的解决方法了. protected void GVList_RowDataBou ...
- sharepoint learning resourse
开始学习sharepoint后,我决定将我的个人电脑上也部署一套开发系统,这样回家也可以学习些东西.因此写点关于部署sharepoint需要资源的文字供初学sharepoint的童鞋一起进步,以避免各 ...