题解 P1901 【发射站】
时间:2019-09-03
本文章向大家介绍题解 P1901 【发射站】,主要包括题解 P1901 【发射站】使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
无良宣传一下博客wwwwww
文章列表 - 核融合炉心 - 洛谷博客
使栈中的信号塔按照高度降序排列
对于一个新的信号塔:
如图 , 当他加入栈中时,
会挡住之前比它低的塔的传播
同时 , 也会接受到比它低的塔的信号- 所以将栈顶所有比它低的塔删除,
(因为他们已经不能再传播给其他塔信号了)
同时 , 新的塔接收到的能量
加上 删掉的塔传播的能量
- 所以将栈顶所有比它低的塔删除,
如图,对于原有的高度比它高的信号塔,
离此新的信号塔最近的,会接受到新的塔的信号- 故 , 将此时栈顶的塔,
即 离此新的信号塔最近的 ,高度比它高的塔
接收到的能量,
加上新的塔传播的能量
- 故 , 将此时栈顶的塔,
再将此新的信号塔加入栈中
\(O(n)\) 复杂度扫一遍后,将所有塔接收到的能量排序一下
输出最大值即可
附上 奇丑的 代码:
#include<cstdio>
#include<algorithm>
#include<stack>
#define ll long long
using namespace std;
const int MARX = 1e6+10;
ll n;
ll h[MARX],v[MARX],w[MARX];
stack <int> s;
signed main()
{
scanf("%lld",&n);
for(ll i=1;i<=n;i++)
{
scanf("%lld%lld",&h[i],&v[i]);
while(!s.empty())// 将栈顶所有比它低的塔删除,
{
if(h[s.top()]>h[i]) break;//遇到比新塔高的
w[i]+=v[s.top()];// 加上 删掉的塔传播的能量
s.pop();
}
if(!s.empty()) w[s.top()]+=v[i];//加上新的塔传播的能量
s.push(i);//加入栈
}
sort(w+1,w+n+1);//找到最大值
printf("%lld",w[n]);
}
原文地址:https://www.cnblogs.com/luckyblock/p/11456380.html
- 接口测试 23 requests基础入门二
- 写让别人能读懂的代码+网页性能管理详解
- CDOJ 1330 柱爷与远古法阵【高斯消元,卡精度】
- Robot Framework | 04 参数化基于Public API的RFS测试
- 接口测试 | 22 requests基础入门
- 分享一个Mvc的多层架构,欢迎大家拍砖斧正
- Robot Framework | 03 基于Public API创建你RFS测试
- Robot Framework | 02 从抛弃RIDE开始创建你的RFS测试
- ASP.NET5 Beta8可用性
- Docker Swarm集群初探
- 数据库逻辑设计
- 06.移动先行之谁主沉浮----我的代码我来写(Xaml的优势)
- [快学Python3]迭代器和生成器
- [快学Python3]INI文件读写
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 如何搭建一个高可用的服务端渲染工程
- [Go] Golang练习项目-GO语言实现插入排序
- vue3+webpack项目搭建实验
- HTML中p标签中插入div标签会发生什么
- K8S 在有赞 PaaS 测试环境中的实践
- Netty高级篇
- SQL工具集-查询会话等待
- 哈工大李志军操作系统实验1
- 有赞推荐系统关键技术
- 8086汇编格式
- React 中 getDerivedStateFromProps 的三个场景
- Java7的try-with-resources声明(转)
- 聊聊java中的哪些Map:(三)HashMap中的Iterator和Spliterator
- 聊聊java中的哪些Map:(四)LinkedHashMap源码分析
- CGroup 介绍