AC日记——刺激 codevs 1958
时间限制: 1 s
空间限制: 128000 KB
题目等级 : 黄金 Gold
saffah的一个朋友S酷爱滑雪,并且追求刺激(exitement,由于刺激过度导致拼写都缺了个字母),喜欢忽高忽低的感觉。现在S拿到了一张地图,试图制定一个最长路径。然而有的地图过于庞大,不易直接看出,所以S请来了saffah,saffah又请来了你向其帮忙。
地图可抽象为一个M×N的矩阵,规定上北下南,左西右东。矩阵中的元素代表这个点的高度。由于S有特殊情况,出于对S的安全考虑,S只能向东滑,向南滑,或者就地停下。我们假定摩擦力可以忽略,那么S的机械能守恒,即S不可能到达比出发点高的地方。
S可以从任意一点出发,到任意一点停止,除了遵守上述规则外,S还要求自己的路线必须是“一上一下一上一下”(这样才刺激对吧),即如果这一时刻比上一时刻的高度高,那么下一时刻只能滑到比这一时刻低的地方,或者停止;反之亦然。保证不会有相邻的两个高度相同的地方。
现在S想知道,按照这个要求,最多能够经过几个点。(包括起点和终点)
输入文件的第一行有两个正整数M,N。
接下来有M行,每行有N个整数,表示这一点的高度值Hi,j。
输出文件只有一行,为一个整数,为最大能够滑行经过的点数。
4 5
3 8 9 2 -1
2 5 8 0 8
8 0 1 2 3
-2 1 9 -1 0
7
说明: 满足题意的最长路径为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的更多相关文章
- AC日记——楼房 codevs 2995
2995 楼房 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 地平线(x轴)上有n个矩(lou ...
- AC日记——传话 codevs 1506 (tarjan求环)
1506 传话 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 白银 Silver 题解 题目描述 Description 一个朋友网络,如果a认识b,那么如果a第 ...
- AC日记——绿色通道 codevs 3342
3342 绿色通道 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description <思远高考绿色通道&g ...
- AC日记——蓬莱山辉夜 codevs 2830
2830 蓬莱山辉夜 时间限制: 1 s 空间限制: 32000 KB 题目等级 : 黄金 Gold 题解 查看运行结果 题目描述 Description 在幻想乡中,蓬莱山辉夜是月球 ...
- AC日记——苹果树 codevs 1228
1228 苹果树 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 在卡卡的房子外面,有一棵 ...
- AC日记——红与黑 codevs 2806
2806 红与黑 时间限制: 1 s 空间限制: 64000 KB 题目等级 : 白银 Silver 题解 查看运行结果 题目描述 Description 有一个矩形房间,覆盖正方形瓷 ...
- AC日记——热浪 codevs 1557 (最短路模板题)
1557 热浪 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 钻石 Diamond 题解 查看运行结果 题目描述 Description 德克萨斯纯朴的民眾们这个夏 ...
- AC日记——字典 codevs 4189
4189 字典 时间限制: 1 s 空间限制: 256000 KB 题目等级 : 大师 Master 题解 查看运行结果 题目描述 Description 最经,skyzhong得到了 ...
- AC日记——开关灯 codevs 1690
开关灯 思路: 线段树: bool懒标记维护: 更新区间时是区间总值减去当前值: 来,上代码: #include <cstdio> #include <cstring> #in ...
随机推荐
- 【NodeJS 学习笔记01】不学就老了
前言 再不学nodeJs,我们就老了......在HTML5大浪袭来的时候,很多先辈就开始了NodeJs之旅,而那时我还在做服务器端的程序后来转成前端,和梯队的距离已经很大了,因为我会服务器端语言,还 ...
- 【javascript激增的思考03】MVVM与Knockout
前言 今天搞的有点快,因为上午简单研究了下MVC,发现MVC不太适合前端开发,然后之前看几位前端前辈都推荐前端使用MVVM,但是我对其还不甚了解,所以我觉得下午还是应该先看看他是神马先,后面再决定要不 ...
- IE中的条件注释(转载自网络)
IE条件注释是微软从IE5开始就提供的一种非标准逻辑语句,作用是可以灵活的为不同IE版本浏览器导入不同html元素,如:样式表,html标签等.很显然这种方法的最大好处就在于属于微软官方给出的兼容解决 ...
- SharePoint 2013 通过HttpModule 管理视图权限
HttpModule工作原理 HttpModule负责监听HttpRequest,当一个HTTP请求到达HttpModule时,整个ASP.NET Framework系统还并没有对这个HTTP请求做任 ...
- [ACM] 1007 -球球方格
与兔子方格类似,不过一秒走一格: 输入 代码 #include<iostream> using namespace std; int main(void) { int test_count ...
- SharePoint 2013 BCS
http://liandove.blog.51cto.com/176335/1247410 http://liandove.blog.51cto.com/176335/1249339 http://l ...
- Java Android HTTP实现总结
Java Android HTTP实现总结 Http(Hypertext Transfer Protocol)超文本传输协议,是一个基于请求/响应模式的无状态的协议,Http1.1版给出了持续连接的机 ...
- UI入门指引
1. iOS学习路线: C语言:数据类型.流程控制.函数.指针.字符串.结构体.枚举.预处理: OC:面向对象.内存管理.分类.协议.Block.KVC/KVO.Foundation框架: iOS基础 ...
- Mac OS 下的解压缩软件——The Unarchiver
The Unarchiver 是 Mac 上最流行的解压软件,免费开源.操作方式与系统自带解压工具 Archive Utility.app 一样,双击自动解压.最爽的一点是把解压后原始文件直接仍进废纸 ...
- yii2解决百度编辑器umeditor图片上传问题
作者:白狼 出处:http://www.manks.top/article/yii2_umeditor_upload本文版权归作者,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原 ...