Luogu【P1901】发射站(单调栈)
题目说明比自己矮的塔收不到自己的能量,摆明了就是单调栈呗。
把比自己矮的全都从栈里弹出去,于是碰到第一个比自己高的。让他接受自己发射的能量。
当然由于发射站发射的能量有两个方向,所以正反两遍。
然后 放代码。
#include<cstdio>
#include<cstdlib>
#include<cctype>
using namespace std; long long ans; inline long long max(long long a,long long b){ return a>b?a:b; } const int size=; long long stack[size],top; inline long long read(){
long long num=,f=;
char ch=getchar();
while(!isdigit(ch)){
if(ch=='-') f=-;
ch=getchar();
}
while(isdigit(ch)){
num=(num<<)+(num<<)+ch-'';
ch=getchar();
}
return num*f;
} struct file{
long long h;
long long v;
long long c;
}que[size]; int main(){
int n=read();
for(int i=;i<=n;++i){
que[i].h=read();
que[i].v=read();
}
for(int i=;i<=n;++i){
while(top&&que[stack[top]].h<=que[i].h) top--;
que[stack[top]].c+=que[i].v;
stack[++top]=i;
}
top=;
for(int i=n;i>;--i){
while(top&&que[stack[top]].h<=que[i].h) top--;
que[stack[top]].c+=que[i].v;
stack[++top]=i;
}
for(int i=;i<=n;++i) ans=max(ans,que[i].c);
printf("%lld",ans);
return ;
}
Luogu【P1901】发射站(单调栈)的更多相关文章
- luogu P1901 发射站
题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发射站接 ...
- 洛谷 P1901 发射站 题解
P1901 发射站 题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的 ...
- 【洛谷】【单调栈】P1901 发射站
[题目描述:] 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发 ...
- 洛谷P1901 发射站
题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发射站接 ...
- 洛谷P1901发射站
题目 一道单调栈裸题,主要是用单调栈维护单调性,和单调队列都可以在\(O(n)\)的时间内得出单调最大值或最小值,要比堆要快. 这个题可以用h来当做单调栈的使用对象,即用单调栈来维护高度,高度是越在栈 ...
- 洛谷 P1901 发射站
题目描述 某地有 N 个能量发射站排成一行,每个发射站 i 都有不相同的高度 Hi,并能向两边(当 然两端的只能向一边)同时发射能量值为 Vi 的能量,并且发出的能量只被两边最近的且比 它高的发射站接 ...
- luogu 1901 发射站
题目大意: 一个数列,它左边第一个比它高的人和右边第一个比它高的人要加上它的权值 思路: 单调栈维护一个单调递减的栈 正反各维护一遍 #include<iostream> #include ...
- luogu 3467 [POI2008]PLA-Postering 单调栈
题目描述: Description N个矩形,排成一排. 现在希望用尽量少的矩形海报Cover住它们. Input 第一行给出数字N,代表有N个矩形.N在[1,250000] 下面N行,每行给出矩形的 ...
- 洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找)
洛谷P1823 [COI2007] Patrik 音乐会的等待(单调栈+二分查找) 标签:题解 阅读体验:https://zybuluo.com/Junlier/note/1333275 这个题不是很 ...
随机推荐
- php后端程序开发学习网站梳理
博主只列举自己经常用到的: 看教学视频:慕课网,网易云课堂,百度传课 看博文和知识点:csdn 看源码:github 刷题:codewars 学习框架:thinkphp官网 下载相关资源:csdn 看 ...
- 设置office首字母不变大小的手段
选项->校对—〉自动更正选项->“自动更正”页,句首字母大写,取消就行了
- javascript基本类型和引用类型,作用域和内存问题
基本类型(null.undefined.boolean.number.string)和引用类型(Object 对象) 1 基本类型:只能不存一个值,一种类型:从一个变量向另一个变量复制基本类型的值, ...
- NTFS文件系统结构及文件恢复
结构部分参考了 https://www.cnblogs.com/mwwf-blogs/archive/2015/05/04/4467687.html 以及P老师的课件. 文件恢复参考: https: ...
- iCheck获取单选和复选框的值和文本
//获取单选和复选框的值//parameters.type:"radio","checkbox"//parameters.name:input-name//pa ...
- hihoCoder-1097-Prim
这题就是prim的板子题,不过如果用end每次初始化为-1的话,我们就不需要对于每次选中的下一个点进行判断是否选中了,因为每次外层循环第一次进入都是可以的. 然后还很 (i=1:i<=n;i++ ...
- (65)login as guest zabbix无法进入登陆界面
很早之前有一位群友告知zabbix登陆不了,一直有如下提示:Access denied.Your are logged in as guest. You have no permissions to ...
- GIMP的Path的合并于复制
1/Path的复制不能像图层一样简单的复制粘贴,只有通过merge的方法实现: 使要合并的Path处于可见状态,右击Path工具栏: 合并前与合并后比较: 2/向不同文件复制Path: 到另外一个 ...
- Shell脚本中循环语句for,while,until用法
循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. 一.for循环 for循环的运作方式,是讲串行的元素意义取出,依序放入指定的变量中,然后重复执行含括的命令区 ...
- IE8 png图片黑色阴影的解决方案!
以前都没有留意这个问题,最近开发中才发现. 什么情况下会出现黑边? PNG透明图片,同时有阴影,具备着两个IE8是不会有问题的,再加上使用了 “渐变显示”,就会出现了. 解决方法: img{displ ...