时间限制: 1 s

空间限制: 128000 KB

题目等级 : 黄金 Gold

 
 
题目描述 Description

saffah的一个朋友S酷爱滑雪,并且追求刺激(exitement,由于刺激过度导致拼写都缺了个字母),喜欢忽高忽低的感觉。现在S拿到了一张地图,试图制定一个最长路径。然而有的地图过于庞大,不易直接看出,所以S请来了saffah,saffah又请来了你向其帮忙。

地图可抽象为一个M×N的矩阵,规定上北下南,左西右东。矩阵中的元素代表这个点的高度。由于S有特殊情况,出于对S的安全考虑,S只能向东滑,向南滑,或者就地停下。我们假定摩擦力可以忽略,那么S的机械能守恒,即S不可能到达比出发点高的地方。

S可以从任意一点出发,到任意一点停止,除了遵守上述规则外,S还要求自己的路线必须是“一上一下一上一下”(这样才刺激对吧),即如果这一时刻比上一时刻的高度高,那么下一时刻只能滑到比这一时刻低的地方,或者停止;反之亦然。保证不会有相邻的两个高度相同的地方。

现在S想知道,按照这个要求,最多能够经过几个点。(包括起点和终点)

输入描述 Input Description

输入文件的第一行有两个正整数M,N。

接下来有M行,每行有N个整数,表示这一点的高度值Hi,j。

输出描述 Output Description

输出文件只有一行,为一个整数,为最大能够滑行经过的点数。

样例输入 Sample Input

4 5

3 8 9 2 -1

2 5 8 0 8

8 0 1 2 3

-2 1 9 -1 0

样例输出 Sample Output

7

数据范围及提示 Data Size & Hint

说明: 满足题意的最长路径为8→5→8→0(或1),共经过了7个点。可以证明,没有更长的路径存在。

对于100%的数据,-2×109≤Hi,j≤2×109。

对于30%的数据,M=N≤5;对于50%的数据,M+N≤25;对于70%的数据,M+N≤50;对于100%的数据,M+N≤100。

思路:

  大搜索;

来,上代码:

#include<cstdio>
#include<iostream> using namespace std; long long int map[][]; int m,n,ans=; void search(int now_x,int now_y,bool if_,int now,long long int max_dis)
{
if(now>ans) ans=now;
if(now_x+<=m)
{
if(if_&&map[now_x+][now_y]<=max_dis&&map[now_x+][now_y]>map[now_x][now_y])
{
search(now_x+,now_y,!if_,now+,max_dis);
}
if(!if_&&map[now_x+][now_y]<map[now_x][now_y])
{
search(now_x+,now_y,!if_,now+,max_dis);
}
}
if(now_y+<=n)
{
if(if_&&map[now_x][now_y+]<=max_dis&&map[now_x][now_y+]>map[now_x][now_y])
{
search(now_x,now_y+,!if_,now+,max_dis);
}
if(!if_&&map[now_x][now_y+]<map[now_x][now_y])
{
search(now_x,now_y+,!if_,now+,max_dis);
}
}
} int main()
{
scanf("%d%d",&m,&n);
for(int i=;i<=m;i++)
{
for(int j=;j<=n;j++) cin>>map[i][j];
}
for(int i=;i<=m;i++)
{
for(int j=;j<=n;j++)
{
search(i,j,false,,map[i][j]);
}
}
cout<<ans<<endl;
return ;
}

AC日记——刺激 codevs 1958的更多相关文章

  1. AC日记——楼房 codevs 2995

    2995 楼房  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 地平线(x轴)上有n个矩(lou ...

  2. AC日记——传话 codevs 1506 (tarjan求环)

    1506 传话  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 白银 Silver 题解       题目描述 Description 一个朋友网络,如果a认识b,那么如果a第 ...

  3. AC日记——绿色通道 codevs 3342

    3342 绿色通道  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description <思远高考绿色通道&g ...

  4. AC日记——蓬莱山辉夜 codevs 2830

    2830 蓬莱山辉夜  时间限制: 1 s  空间限制: 32000 KB  题目等级 : 黄金 Gold 题解  查看运行结果     题目描述 Description 在幻想乡中,蓬莱山辉夜是月球 ...

  5. AC日记——苹果树 codevs 1228

    1228 苹果树  时间限制: 1 s  空间限制: 128000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 在卡卡的房子外面,有一棵 ...

  6. AC日记——红与黑 codevs 2806

    2806 红与黑  时间限制: 1 s  空间限制: 64000 KB  题目等级 : 白银 Silver 题解  查看运行结果     题目描述 Description 有一个矩形房间,覆盖正方形瓷 ...

  7. AC日记——热浪 codevs 1557 (最短路模板题)

    1557 热浪  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 钻石 Diamond 题解  查看运行结果     题目描述 Description 德克萨斯纯朴的民眾们这个夏 ...

  8. AC日记——字典 codevs 4189

    4189 字典  时间限制: 1 s  空间限制: 256000 KB  题目等级 : 大师 Master 题解  查看运行结果     题目描述 Description 最经,skyzhong得到了 ...

  9. AC日记——开关灯 codevs 1690

    开关灯 思路: 线段树: bool懒标记维护: 更新区间时是区间总值减去当前值: 来,上代码: #include <cstdio> #include <cstring> #in ...

随机推荐

  1. 移动端图片滚动加载-lazyload实现的要点总结

    最近在做移动端的营销页面时,遇到了页面有大量图片的情况,于是很自然的想到了要使用图片lazyload,PC端用着jQuery,也有现成的插件.但是在移动端,基本不用jQuery,于是就试着自己去造一下 ...

  2. onMeasure流程解析

    0.预备知识 我们的手机屏幕的布局其实是嵌套的,最外层是一个phoneWindow,这个view和手机屏幕一样大,里面是一个frameLayout,再里面才是我们自己写的布局文件. 我们在绘制控件前必 ...

  3. Java虚拟机JVM学习04 类的初始化

    Java虚拟机JVM学习04 类的初始化 类的初始化 在初始化阶段,Java虚拟机执行类的初始化语句,为类的静态变量赋予初始值. 在程序中,静态变量的初始化有两种途径: 1.在静态变量的声明处进行初始 ...

  4. 检查sqlite数据库完整性

    最近遇到一个问题,用户数据丢失,拿到用户数据库文件以后,发现数据库损坏. database disk image is malformed 因此希望可以找到一种方法,可以检测出来数据库是否损坏,经过g ...

  5. sqlite API模型

     每一个数据库连接可以包括多个数据库文件,一个主数据库文件和attached的几个数据库文件. 每一个数据库文件都有自己的B-tree和pager. 数据库连接(connection)和事务(tra ...

  6. commandline (命令行)登录mysql

    mysql登录在命令行登录的时候是通过mysql的里面的程序的录的 其登录格式有两种:(在oracle上看到的是列出这两种,不要既有全参数名又有缩写参数名.) 1.全参数名登录释例 mysql --h ...

  7. 你真的了解UITableViewCell重用吗?

    一:首先查看一下关于UITableViewCell重用的定义 - (nullable __kindof UITableViewCell *)dequeueReusableCellWithIdentif ...

  8. OC 类方法,对象方法,构造方法以及instancetype和id的异同

    OC 类方法,对象方法,构造方法以及instancetype和id的异同 类方法: 类方法是可以直接使用类的引用,不需要实例化就可以直接使用的方法.一般写一些工具方法. 类方法: 声明和实现的时候,以 ...

  9. WWDC 2013 Session笔记 - UIKit Dynamics入门

    本文涉及到的WWDC2013 Session有 1.Session 206 Getting Started with UIKit Dynamics 2.Session 221 Advanced Tec ...

  10. 说说Angular中的$timeOut定时器

     非常不幸的一点是,人们似乎常常将AngularJS中的$timeOut()函数看做是一个内置的.无须在意的函数.但是,如果你忘记了$timeOut()的回调函数将会造成非常不好的影响,你可能会因此遇 ...