项目场景:

LIS问题 dp


问题描述

五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号。

同时队员们还有另一个登山习惯,就是不连续浏览海拔相同的两个景点,并且一旦开始下山,就不再向上走了。

队员们希望在满足上面条件的同时,尽可能多的浏览景点,你能帮他们找出最多可能浏览的景点数么?

输入格式

第一行包含整数N,表示景点数量。

第二行包含N个整数,表示每个景点的海拔。

输出格式

输出一个整数,表示最多能浏览的景点数。

数据范围

2≤N≤1000

输入样例:

8
186 186 150 200 160 130 197 220

输出样例:

4

分析思路: 

本题实质上是求正向和反向两次LIS问题,两次的LIS过程相互独立,因此答案为两端LIS过程中最长上升子序列的最大长度之和-1

res = max(f[i]+g[i]-1,res)


实现代码:

#include<iostream>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 1010;
int a[N];
//f[N]存储的是左边上升子序列的长度最大值 g[N]存储的是右边下降子序列的长度最大值
//答案为f[N]+f[N]-1的最大值 两边求解时相互独立 分别求解最大值 最后遍历f和g res为f[i]+g[i]-1当中的最大长度
int f[N],g[N];int n;int main(){cin>>n;for(int i=1;i<=n;i++) cin>>a[i];int res =0;//求左边最大上升子序列的长度最大值 存储到f[i]for(int i=1;i<=n;i++){f[i] = 1;for(int j=1;j<i;j++){if(a[j]<a[i]){f[i] = max(f[i],f[j]+1);}}}//求右边最大下降子序列的长度最大值 存储到g[i]for(int i=n;i>=1;i--){g[i] = 1;for(int j=n;j>i;j--){if(a[j]<a[i]){g[i] = max(g[i],g[j]+1);       }}}for(int i=1;i<=n;i++) res = max(res,f[i]+g[i]-1);cout<<res<<endl;return 0;
}

acwing1014-登山问题相关推荐

  1. AcWing1014.登山

    题目描述 五一到了,ACM队组织大家去登山观光,队员们发现山上一共有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号. 同时队员们还有另一个登山习惯,就是不 ...

  2. 业余无线电通信_登山与业余无线电的完美结合,便携式电台参加VHF比赛心得体会...

    2020 VHF QSO PARTY 了,我们来看看 KDØMFO 是如何把登山和业余无线电比赛完美地结合在一起. KDØMFO 我喜欢徒步背包旅行,为此,我把家搬到落基山脉附近.几年前,因为爬山的时 ...

  3. 苹果自动关机_零下二十度,登山表爆表,苹果冻关机,电霸手机好

    五台山徒步大朝台,零下二十多度的严寒里,将近3000米的海拔高度上,能测温-20°-60°范围的某专业户外登山表爆表了!苹果手机更不用说,拿出来的瞬间就死翘翘 那么,在如此酷寒的环境中,这张照片是用什 ...

  4. 《信息学奥赛一本通》1283:登山

    /* <信息学奥赛一本通>1283:登山  http://ybt.ssoier.cn:8088/problem_show.php?pid=1283 */ #include<bits/ ...

  5. 登山(信息学奥赛一本通-T1283)

    [题目描述] 五一到了,ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览景点的编号都要大于前一个浏览景点的编号.同时队员们还有另一个登山习惯,就是 ...

  6. 杭州登山地图是谁开发的_好天气继续,重阳节登高,五条杭州登山线路奉上

    杭州天气.19楼 周六的阳光 相信大家都晒到了吧 秋游.露营.野餐 朋友圈都是出行片 近期好天气将"成串出行", 大家可以尽情享受秋高气爽. 预计未来一周, 杭州将以晴到多云天气为 ...

  7. 2018,广东,深圳马峦山游玩攻略(含登山线路)

    (从小梅沙上,从溪涌下,全程20公里,用时7.5小时,含1小时用餐时间) 马峦山公园横跨坪山新区和大鹏新区,占地31.676km2,东临葵涌街道(原葵涌镇),远眺大小梅沙,南临盐田区三洲田郊野公园,北 ...

  8. 张朝阳寄语“校花”把参赛比做登山 走到不同阶段都是一种成就

    10月18日消息,2019"狐友国民校花大赛"第三场全国晋级赛于北京举行.搜狐公司董事局主席兼首席执行官张朝阳在现场表示:"这是一个关乎审美并给年轻人创造成才机会的通道, ...

  9. Bailian2995 登山【LIS】

    2995:登山 总时间限制: 5000ms 内存限制: 131072kB 描述 五一到了,PKU-ACM队组织大家去登山观光,队员们发现山上一个有N个景点,并且决定按照顺序来浏览这些景点,即每次所浏览 ...

  10. 【NHOI2018】跳伞登山赛

    [题目描述] 某山区有高高低低的 n 个山峰,根据海拔高度的不同,这些山峰由低到高进行了 1 到 n 编号.有 m 条只能单向通行的羊肠小道连接这些山峰.现在,这里要举行一场跳伞登山赛,选手们伞降到某 ...

最新文章

  1. 【UVA】11992 - Fast Matrix Operations(段树模板)
  2. 数据库权限的分配与回收
  3. 日记 [2008年03月23日]LINUX网关后面的pptp ***客户机连接***
  4. c 递归下降识别程序_看动画轻松理解递归与动态规划
  5. mysql 快速入门_MySql快速入门
  6. 转载-如何做好项目的需求与业务调研▲▲▲
  7. wxWidgets:wxOwnerDrawnComboBox类用法
  8. c语言3种链接属性: 外部(external), 内部(internal),无设置(none)
  9. php输入密码才能浏览,使用php为网页设置访问密码 - 小俊学习网
  10. maven java web项目_Maven创建JavaWeb项目
  11. 【Linux】centos7安装bcp报错
  12. 原生js之同级元素添加移除class
  13. Android vivo美颜相机相册 照亮你的美 图片压缩 图片滤镜,裁剪(附带完整项目源码)
  14. ps如何制作霓虹字体
  15. 使用JS监听键盘按下事件(keydown event)
  16. asmr刷新失败无法连接上服务器_月圆之夜连接服务器失败 连接不上网络怎么办...
  17. java资源使用效率较高,Java 进程资源使用率较高问题定位
  18. java实现第二届蓝桥杯地铁换乘(C++)
  19. 2017第三届中国(重庆)国际物流展会刊(参展商名录)
  20. 带你快速看完9.8分神作《Effective Java》—— 类和接口篇

热门文章

  1. idea Java HotSpot(TM) 64-Bit Server VM warning: ignoring option PermSize=512
  2. Python, SQL: Cannot drop database XXX because it is currently in use解决方法
  3. 微信H5支付跳回app的问题
  4. 实验九 微机接口综合实验
  5. linux app,比较Linux App Store:哪一个适合您? | MOS86
  6. VBA设置默认/缺省运行路径的方法
  7. srio 门铃_如何使SkyBell HD门铃静音
  8. 统计学中z分布、t分布、F分布及χ^2分布
  9. 长连接 、短连接、心跳机制与断线重连
  10. oracle防止sql注入proc,解密:Oracle怎么防SQL注入