poj 1088 滑雪
时间:2022-05-08
本文章向大家介绍poj 1088 滑雪,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
题意:找出最长的递增道路,可以上下左右四个方向走
DP方程:step[ i ][ j ] = max{ step[ i-1][ j ], step[ i ][ j-1], step[ i+1][ j ], step[ i ][ j+1] };
借鉴各类大牛的代码,终于写出来了第一道记忆化搜索
#include<stdio.h>
//全局变量自动赋0
int mp[101][101];//记录原始数据
int step[101][101];//记录每个地方的最大滑雪步数
int N,M;
int DP(int row,int column)//行列不要用x,y
{
int max=0;
if(step[row][column]>0) return step[row][column];//已经遍历过了 就不要在进行了
//找上下左右四个方向中step最大的然后加到该位置中
//上
if (row-1>=0 && mp[row-1][column]<mp[row][column])
{
if(max<DP(row-1,column))
max=DP(row-1,column);
}
//下
if(row+1<N && mp[row+1][column]<mp[row][column])
{
if(max<DP(row+1,column))
max=DP(row+1,column);
}
//左
if(column-1>=0 && mp[row][column-1]<mp[row][column])
{
if(max<DP(row,column-1))
max=DP(row,column-1);
}
//右
if(column+1<M && mp[row][column+1]<mp[row][column])
{
if(max<DP(row,column+1))
max=DP(row,column+1);
}
max++;//算上自己本身那一步
//return的东西非常重要;
//1-2-3-4这四个点从4开始
//找的话会把1,2,3都记录了
return step[row][column]=max;
}
int main()
{
int i,j;
scanf("%d%d",&N,&M);
for (i=0;i<N;i++)
for(j=0;j<M;j++)
{
scanf("%d",&mp[i][j]);
step[i][j]=0;
}
for (i=0;i<N;i++)
for (j=0;j<M;j++)
DP(i,j);
//step[i][j]=DP(i,j)这样会超时
//如果从4开始找就只会把4的结果记录
//1,2,3没有记录
int max=0;
for (i=0;i<N;i++)
for (j=0;j<M;j++)
if(max<step[i][j]) max=step[i][j];
printf("%dn",max);
return 0;
}
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 要点1:指针、数组和复合字面量
- akka-typed(9) - 业务分片、整合,谈谈lagom, 需要吗?
- com-IFileDlg 进行文件的 打开或者保存
- 哆啦A梦?不好记!安利一下Prometheus这款开源的企业监控报警平台
- Kotlin:03-变量、常量、数据类型
- nginx工程师,需要上承天命,下召九幽
- 新版视频流媒体平台EasyNVR如何在前端显示当前页面所在位置?
- Kotlin:04-基本数据类型详细介绍
- Kotlin:05-控制流 if、when、for、while
- android: API24 及以上版本调用系统相机时报:FileUriExposedException 的解决
- Typora 完美结合 PicGo,写作体验更佳!
- 视频流媒体服务器EasyNVR在CentOS6.5上编译报 No such file or directory错误
- Flink Timer(定时器)机制及实现详解
- android:运行时权限工具类的封装
- Android:非Activity跳转Activity时要加FLAG?