发射站(2017佛山市选拔初中组)

题目描述

有N个能量发射站排成一行,每个发射站i都有不相同的高度 Hi,并能向两边(当然两端的只能向一边)同时发射能量值为Vi的能量,并且发出的能量只被两边最近的且比它高的发射站接收。
显然每个发射站发来的能量有可能被0或1或2个其它发射站接收,特别是为了安全,它受到的能量总和是我们很关心的。由于数据很多,请你帮助我们计算出接受了最多能量的发射站接受的能量是多少。
【数据范围】
1≤N≤800,000;1≤hi≤2,000,000,000;1≤vi≤10,000。

输入格式 1756.in

第1行:一个整数 N;
第2..N+1行:第i+1行有2个整数Hi和Vi,表示第i个发射站的高和发射的能量值。

输出格式 1756.out

一行:一个发射站接收到的最大能量值。

输入样例 1756.in

3
4 2
3 5
6 10

输出样例 1756.out

【提示】
第3个发射站可接受第1和第2个发射的能量:2+5=7

【输入样例2】
4
1 2
3 1
7 5
2 3
【输出样例2】
4
【提示】

  

第三个发射站可接受第2个和第四个发射的能量 :1+3=4

  这一题其实在暴力的基础上加一点小的优化就可以A。

  其实就是要找前(后)比当前(now)高的第一个。当我们从左往右找的时候,其实就已经是计算出前面的了。那么如果前一个比now高,那么就是前一个;否则,那比前面还矮的就不必搜索了,因为既然你比前面的高,比前面矮的自然也不会比now高。所以,我们可以记录下每一个比它高的那个的位置l和r。

  在now时,直接由l[now-1]往前找就可以了,可以省去很多时间,同样的,也从右往左扫一遍,最后取一个能量max值就是最终结果。

  参考代码:

#include<iostream>
#include<cstdio>
using namespace std;
int n,h[800005],m[800005];
int l[800005],r[800005],ans[800005],oo=2000000005;
int main()
{freopen("1756.in","r",stdin);freopen("1756.out","w",stdout);cin>>n;for(int i=1;i<=n;i++) cin>>h[i]>>m[i];h[0]=oo;h[n+1]=oo;for(int i=1;i<=n;i++){int v=0;if(h[i]<h[i-1]) {l[i]=i-1;ans[i-1]+=m[i];}else{v=l[i-1];for(int j=v;j>=1;j--){if(h[i]<h[j]){l[i]=j;ans[j]+=m[i];break;}}}}for(int i=n;i>=1;i--){int v=0;if(h[i]<h[i+1]) {r[i]=i+1;ans[i+1]+=m[i];}else{v=r[i+1];for(int j=v;j<=n;j++){if(h[i]<h[j]){r[i]=j;ans[j]+=m[i];break;}}}}int ans2=0;for(int i=1;i<=n;i++){ans2=max(ans2,ans[i]);}cout<<ans2<<endl;return 0;
}

  

转载于:https://www.cnblogs.com/yiyiyizqy/p/7397070.html

发射站(2017佛山市选拔初中组)相关推荐

  1. 金环(2017佛山市选拔初中组)

    金环(2017佛山市选拔初中组) 题目描述 小月亮到达了一个城市并住在一个宾馆.她没有钱了,但是过了N天,她就会收到一大笔钱.但是她有一条由N个金环串成的金链.小月亮必须每天付1个金环给商家,但是她可 ...

  2. 蚂蚁搬沙(2017佛山市选拔初中组)

    蚂蚁搬沙(2017佛山市选拔初中组) 题目描述 山谷中住着一个巨大的蚂蚁王国,蚁穴外有一个整洁的广场,天气晴好时蚁群常在那里举行各种活动.这天夜里,天降沙尘,第2天,广场上堆满了大大小小的沙堆,蚁哨出 ...

  3. 洛谷:P1901 发射站

    原题地址:https://www.luogu.org/problemnew/show/P1901 题目简述 有 N 个能量发射站排成一行,每个都有不相同的高度 \(H_i\),能向两边(当然两端的只能 ...

  4. 洛谷P1901 发射站

    P1901 发射站 245通过 468提交 题目提供者该用户不存在 标签NOI导刊云端↑ 难度普及/提高- 时空限制1s / 128MB 提交  讨论  题解 最新讨论更多讨论 大神路过的看一下 输入 ...

  5. B站在美上市 A站却为融资心塞

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! 2018 区块链技术及应用峰会(BTA)·中国 倒计时1天 2018,想要 follow 最 ...

  6. A站凉了,B站上市,微博曲线入局 破壁的二次元市场成巨头盛宴

    上周,二次元视频网站.弹幕鼻祖ACFUN发出"我想再活500年"的微博与百万"猴子"告别,走向长期关闭,让内容行业为之震动.事实上,2017年ACFUN至少已有 ...

  7. TinyPNG---一个压缩PNG的神站

    TinyPNG---一个压缩PNG的神站 2017年02月14日 16:04:52 阅读数:754 转载于:http://app.hustonline.net/article/detail/51 如何 ...

  8. 首席商学院新媒体运营创始人黎想:B站用户运营策略分析报告!

    Bilibili于2009年6月创建,其前身为Mikufans视频分享网站,如今是一家以泛二次元内容.PUGC内容生产模式为主的综合视频社区. 作为新媒体运营人,首席新媒体商学院创始人,资深新媒体运营 ...

  9. 《B站用户运营策略分析报告》从小众到大众的成功策略范本!

    EIGHTEEN! | 作者 人人都是产品经理 | 来源 1 产品介绍 1. 产品背景  所处领域  哔哩哔哩也被称为Bilibili或简称为B站,于2009年6月创建,其前身为Mikufans视频分 ...

最新文章

  1. 详略。。设计模式1——单例。。。。studying
  2. WinForm下PictureBox和Panel控件的On_Paint事件有何区别
  3. 数电实验报告实验一_大二下学期的两三事之数电实验amp;课设
  4. 中国电线电缆行业发展形势与投资规模预测报告2022版
  5. 火狐 增强查找工具栏_在“提示”框中:简单的IE至Firefox同步,轻松的Windows工具栏和识别USB电缆...
  6. dynamo python修改多个参数_40岁小白学了30天python发现,编程真的其乐无穷
  7. ProxyPass与ProxyPassReverse及ProxyPassMatch的概述
  8. lc 297. Serialize and Deserialize Binary Tree
  9. 用Eclipse写java
  10. 第39天-进程 _1(2013.09.11)
  11. linux 7 路由命令,CentOS7路由、端口和服务排障常用命令
  12. 查找上一级作用域(作用域链)
  13. html 时钟怎样居中,怎么用css3做时钟刻度
  14. cve20190708补丁的kb名称_64位kb4499175补丁下载
  15. 写给美术看的Unity全局光照详解
  16. GitBash和GitGui右键失效解决方法
  17. 大数据之道 HMM系列
  18. 微信支付“举刀”挥向谁?
  19. 软件构造-Reading 1:静态检查
  20. Microsoft Visual SourceSafe

热门文章

  1. 在Ubuntu中使用远程桌面
  2. 无法加载mcrypt扩展,请检查您的php配置的解决办法
  3. 大专生如何报考MBA
  4. 理解 Delphi 的类(六) - 认识类的封装
  5. 从Jenkins迁移到Jenkins X:一场持续交付之旅\n
  6. 让Vagrant在Windwos下支持使用NFS/SMB共享文件夹从而解决目录共享IO缓慢的问题
  7. WIN2008系统的IIS7.0配置REWRITE伪静态环境
  8. Linux page allocation failure 的问题处理 - zone_reclaim_mode
  9. 半导体量子芯片开发获重要进展
  10. Swift开发:仿Clear手势操作(拖拽、划动、捏合)UITableView