博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
tyvj1004 滑雪
阅读量:4973 次
发布时间:2019-06-12

本文共 1294 字,大约阅读时间需要 4 分钟。

描述

    trs喜欢滑雪。他来到了一个滑雪场,这个滑雪场是一个矩形,为了简便,我们用r行c列的矩阵来表示每块地形。为了得到更快的速度,滑行的路线必须向下倾斜。
    例如样例中的那个矩形,可以从某个点滑向上下左右四个相邻的点之一。例如24-17-16-1,其实25-24-23…3-2-1更长,事实上这是最长的一条。

输入格式

输入文件
第1行: 两个数字r,c(1<=r,c<=100),表示矩阵的行列。
第2..r+1行:每行c个数,表示这个矩阵。

输出格式

输出文件
仅一行: 输出1个整数,表示可以滑行的最大长度。

测试样例1

输入

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

输出

25
#include
#include
#include
#include
#include
using namespace std;const int maxn = 105;int r,c,ans;int h[maxn][maxn],f[maxn][maxn];int dx[4] = {-1,0,1,0};int dy[4] = {
0,-1,0,1};bool jud(int i,int j){ if(i < 1 || i > r || j < 1 || j > c) return false; return true;}int dp(int i,int j){ if(f[i][j]) return f[i][j]; f[i][j] = 1; int y,x; for(int t = 0;t < 4;t++){ y = i + dy[t]; x = j + dx[t]; if(jud(y,x) && h[i][j] > h[y][x]) f[i][j] = max(f[i][j],1 + dp(y,x)); } return f[i][j];}int main(){ cin>>r>>c; for(int i = 1;i <= r;i++){ for(int j = 1;j <= c;j++){ cin>>h[i][j]; } } for(int i = 1;i <= r;i++){ for(int j = 1;j <= c;j++){ ans = max(ans,dp(i,j)); } } cout<

 

转载于:https://www.cnblogs.com/hyfer/p/5754620.html

你可能感兴趣的文章
机电行业如何进行信息化建设
查看>>
9、总线
查看>>
2018 Multi-University Training Contest 10 - Count
查看>>
HDU6203 ping ping ping
查看>>
构建之法阅读笔记02
查看>>
检索COM 类工厂中CLSID 为 {00024500-0000-0000-C000-000000000046}的组件时失败
查看>>
Fireworks基本使用
查看>>
Linux 标准 I/O 库
查看>>
.net Tuple特性
查看>>
Java基础常见英语词汇
查看>>
nginx启动、关闭命令、重启nginx报错open() "/var/run/nginx/nginx.pid" failed
查看>>
BZOJ 3097 Hash Killer I
查看>>
UINavigationController的视图层理关系
查看>>
html阴影效果怎么做,css 内阴影怎么做
查看>>
宏观经济
查看>>
综合练习:词频统计
查看>>
BZOJ1026: [SCOI2009]windy数
查看>>
样板操作数
查看>>
64位UBUNTU下安装adobe reader后无法启动
查看>>
组件:slot插槽
查看>>