当前位置: 首页 > news >正文

1531 山峰 【栈的应用】

题目连接:http://codevs.cn/problem/1531/

题目描述 Description

Rocky山脉有n个山峰,一字排开,从西向东依次编号为1, 2, 3, ……, n。每个山峰的高度都是不一样的。编号为i的山峰高度为hi。

小修从西往东登山。每到一座山峰,她就回头观望自己走过的艰辛历程。在第i座山峰,她记录下自己回头能看到的山峰数si。

何谓“能看到”?如果在第i座山峰,存在j<k<i,hj<hk,那么第j座山峰就是不可见的。除了不可见的山峰,其余的山峰都是可见的。

回家之后,小修把所有的si加起来得到S作为她此次旅行快乐值。现在n座山峰的高度都提供给你了,你能计算出小修的快乐值吗?

输入描述 Input Description

第一行一个整数n(n<=15000)。

第i+1(1<=i<=n)行是一个整数hi(hi<=109)。

输出描述 Output Description

仅一行:快乐值。

样例输入 Sample Input

5

2

1

3

5

9

样例输出 Sample Output

5

数据范围及提示 Data Size & Hint

说明:s1=0, s2=1, s3=2, s4=1, s5=1。

分析:

只用维护当前单调递减的山峰序列即可

 1 #include<iostream>
 2 #include<cstring>
 3 #include<cstdio>
 4 #include<stack>
 5 using namespace std;
 6 int n,a[15050],ans,s[15009],top=1;
 7 int main()
 8 {
 9     scanf("%d",&n);
10     for(int i=1;i<=n;i++)
11         scanf("%d",&a[i]);
12     s[1]=a[1];
13     for(int i=2;i<=n;i++)
14     {
15         ans+=top;
16         if(s[top]>a[i]) s[++top]=a[i];
17         else {
18             while(s[top]<=a[i]&&top>=1) 
19             {
20                 top--;
21             }
22             s[++top]=a[i];
23         }
24     }
25     printf("%d",ans);
26     return 0;
27 }

代码来源:http://www.cnblogs.com/suishiguang/p/6216847.html

 

相关文章:

  • Activity 5秒 Broadcast 10秒 Service 20秒
  • Windows 8 C#调用C++编写的Windows运行时组件
  • SQL Server 索引基础知识(1)--- 记录数据的基本格式
  • 计算器--超级low版
  • [原创]JSLint-Toolkit v1.2 - Update with qooxdoo1.3
  • SylixOS 异步工作队列
  • XenApp6.0 部署之 五发布应用程序
  • 关于浏览器兼容处理的几种方式
  • sysinternals利器系列之——AccessChk
  • JS中的事件分类
  • 最NB的打字练习程序——计算机达人成长之路(39)
  • linux 上配置tomcat、mysql 开机启动
  • 在常规临床工作中生物制剂治疗银屑病的耐受性和安全性:一项103例意大利患者的研究...
  • java第八次作业:课堂上发布的前5张图片(包括匿名对象、单例模式恶汉式、自动生成对象、args[]数组使用、静态关键字)...
  • Angular4 模板式表单用法以及验证
  • 网络传输文件的问题
  • [deviceone开发]-do_Webview的基本示例
  • 2019.2.20 c++ 知识梳理
  • angular2开源库收集
  • java第三方包学习之lombok
  • LeetCode18.四数之和 JavaScript
  • Lsb图片隐写
  • MySQL的数据类型
  • MySQL-事务管理(基础)
  • nodejs调试方法
  • node学习系列之简单文件上传
  • Python_OOP
  • tensorflow学习笔记3——MNIST应用篇
  • vue学习系列(二)vue-cli
  • 从 Android Sample ApiDemos 中学习 android.animation API 的用法
  • 从输入URL到页面加载发生了什么
  • 发布国内首个无服务器容器服务,运维效率从未如此高效
  • 分享自己折腾多时的一套 vue 组件 --we-vue
  • 官方解决所有 npm 全局安装权限问题
  • 前端面试总结(at, md)
  • 我这样减少了26.5M Java内存!
  • 一个JAVA程序员成长之路分享
  • 在weex里面使用chart图表
  • ​2021半年盘点,不想你错过的重磅新书
  • (9)STL算法之逆转旋转
  • (aiohttp-asyncio-FFmpeg-Docker-SRS)实现异步摄像头转码服务器
  • (day6) 319. 灯泡开关
  • (WSI分类)WSI分类文献小综述 2024
  • (动态规划)5. 最长回文子串 java解决
  • (附源码)ssm基于jsp高校选课系统 毕业设计 291627
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (十七)Flask之大型项目目录结构示例【二扣蓝图】
  • (转)【Hibernate总结系列】使用举例
  • (转)MVC3 类型“System.Web.Mvc.ModelClientValidationRule”同时存在
  • ./mysql.server: 没有那个文件或目录_Linux下安装MySQL出现“ls: /var/lib/mysql/*.pid: 没有那个文件或目录”...
  • .net 4.0发布后不能正常显示图片问题
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .net 验证控件和javaScript的冲突问题
  • /var/spool/postfix/maildrop 下有大量文件
  • [ 数据结构 - C++]红黑树RBTree