0526 POJ#1088&G2n#C-滑雪
来源:互联网 发布:金山软件成都分公司 编辑:程序博客网 时间:2024/06/04 23:21
摘要:
对给定的高度分布,按要求找出最长的滑行路线。
原题目链接:POJ - 1088
Michael喜欢滑雪百这并不奇怪, 因为滑雪的确很刺激。可是为了获得速度,滑的区域必须向下倾斜,而且当你滑到坡底,你不得不再次走上坡或者等待升降机来载你。Michael想知道载一个区域中最长底滑坡。区域由一个二维数组给出。数组的每个数字代表点的高度。下面是一个例子
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。Input Output Sample Input Sample Output
1 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
一个人可以从某个点滑向上下左右相邻四个点之一,当且仅当高度减小。在上面的例子中,一条可滑行的滑坡为24-17-16-1。当然25-24-23-...-3-2-1更长。事实上,这是最长的一条。
输入的第一行表示区域的行数R和列数C(1 <= R,C <= 100)。下面是R行,每行有C个整数,代表高度h,0<=h<=10000。
输出最长区域的长度。
5 51 2 3 4 516 17 18 19 615 24 25 20 714 23 22 21 813 12 11 10 9
25来源: https://cn.vjudge.net/problem/description/8590?1496227262000
题目认识:
通过遍历所有点为起点计算搜索最长的长度。
注意:
对于每个点的长度,如果不保存,每次都从新找回很耗时间,找过的点的长度保存下来,下次直接使用。
日期:
2017 05 26
代码:
#include <cstdio>
#include <algorithm>
#define MAX 101
struct point{
int hight;
int length;
point():length(-1){}
};
point m_map[MAX][MAX];
int R,C;
void getmap(){
scanf("%d%d",&R,&C);
for(int i=0;i<R;i++){
for(int j=0;j<C;j++){
scanf("%d",&m_map[i][j].hight);
// printf("%d ",m_map[i][j].length);
}
}
}
int ans=-1;
int dx[]={-1,0,1,0},dy[]={0,-1,0,1};//up left down right
bool check(int r,int c){
if(r<R&&r>=0&&c<C&&c>=0) return true;
return false;
}
int fdw(int r,int c){
//printf("\n%d %d %d",r,c,m_map[r][c].length);
if(m_map[r][c].length!=-1) return m_map[r][c].length;
int max_l=1;
for(int i=0;i<4;i++){
if( check(r+dx[i],c+dy[i]) )
if( m_map[r][c].hight > (m_map[r+dx[i]][c+dy[i]].hight) )
if( max_l < ( 1 + fdw( r+dx[i],c+dy[i] ) ) ) max_l=1+fdw(r+dx[i],c+dy[i]);
}
m_map[r][c].length=max_l;
// printf("\n(%d %d)%d*%d",r,c,m_map[r][c].hight,m_map[r][c].length);
return m_map[r][c].length;
}
int main(){
getmap();//find way
for(int i=0;i<R;i++){
for(int j=0;j<C;j++){
if(fdw(i,j)>ans) ans=fdw(i,j);
}
}
printf("%d\n",ans);
return 0;
}
阅读全文
0 0
- 0526 POJ#1088&G2n#C-滑雪
- 0526 POJ#1852&G2n J-Ants
- POJ 1088 滑雪
- POJ 1088 滑雪
- POJ 1088 滑雪
- Poj 1088 滑雪
- poj 1088 滑雪
- 滑雪--POJ--1088
- poj 1088 滑雪(DP)
- POJ 1088 滑雪
- POJ 1088 滑雪
- poj 1088 滑雪
- POJ 1088 滑雪
- poj 1088 滑雪
- POJ 1088 滑雪
- poj 1088 滑雪
- poj 1088 滑雪
- POJ 1088 滑雪 DP
- C++中的函数参数
- HashMap与TreeMap
- 闭包 匿名函数的调用 链式作用域 预解析机制
- hadoop运行WordCount.jar
- 机器学习算法对数据的要求以及使用的情况
- 0526 POJ#1088&G2n#C-滑雪
- Android Date、long、String相互转换的工具类
- Spring事务不生效问题汇总
- mysql必知必会学习笔记
- ORACLE数据库SQL语句的执行过程
- PAT--1032. Sharing
- JAVA设计模式(单例模式)
- ThreadLocal线程本地变量
- python实现房价预测,采用回归和随机梯度下降法
原创粉丝点击
热门IT博客
热门问题
老师的惩罚
人脸识别
我在镇武司摸鱼那些年
重生之率土为王
我在大康的咸鱼生活
盘龙之生命进化
天生仙种
凡人之先天五行
春回大明朝
姑娘不必设防,我是瞎子
600863内蒙华电
千万别找内蒙姑娘
内蒙翔盛公棚
内蒙旅游景点
内蒙通源赛鸽公棚
内蒙旅游攻略
内蒙云家权力有多大
内蒙赛飞亚赛鸽公棚
内蒙自驾游必去景点
内蒙北国之春公棚
内蒙首府是哪里
内蒙十一先一五走势图
内蒙华电股吧东方
内蒙勇翔公棚
内蒙草原旅游攻略
内蒙有什么好玩的地方
内蒙华电股市行情
内蒙旅游景点大全
内蒙游玩攻略
内蒙旅游注意事项
内蒙高考报名条件
内蒙事业单位考试
内蒙旅游景点大全排名榜
内蒙公务员考试题
内蒙事业单位招聘
内蒙都有哪些城市
内蒙移动门户网站
内蒙的特产有哪些
内蒙的特产是什么
内蒙旅游景区有哪些
内蒙草原旅游
内蒙公务员考试时间
内蒙有什么好吃的
内蒙烤全羊多少钱一只
内蒙旅游去哪里
内蒙医学院第二附属医院
内蒙特产有哪些
内蒙旅游报价
内蒙古风景图片
内蒙古有什么好玩的
内蒙古特色美食