洛谷:P1901 发射站
原题地址:https://www.luogu.org/problemnew/show/P1901
题目简述
有 N 个能量发射站排成一行,每个都有不相同的高度 \(H_i\),能向两边(当然两端的只能向一边)同时发射能量值为\(V_i\) 的能量,并且发出的能量只被两边最近的且比它高的发射站接收。
显然,每个发射站发来的能量有可能被0或1或2个其他发射站所接受,求接收最多能量的发射站接收的能量是多少。
思路
每个能量塔射出的能量被左右第一个比其高的塔所拦截。隐隐约约觉得可以用单调栈搞……
维护一个高度单调不升栈,考虑依次将能量塔i加入栈:
- 如果高度比栈顶元素大或栈空,栈顶元素能量加上\(V_i\),压入栈;
- 如果高度比栈顶元素小(栈顶元素编号记为top),当前能量塔i接收的能量加上\(V_{top}\),弹出栈顶元素。重复执行直到符合情况1,按1的处理方法处理。
最后直接扫描一遍最大值,输出。
代码
#include <bits/stdc++.h>
using namespace std;
int s1[1000010],h[1000010],v[1000010],sum[1000010],ans,n,top;
int main()
{scanf("%d",&n);for(int i=1;i<=n;i++) {scanf("%d%d",&h[i],&v[i]);while(top&&h[s1[top]]<h[i])sum[i]+=v[s1[top]],top--;sum[s1[top]]+=v[i];top++;s1[top]=i;}for(int i=1;i<=n;i++)ans=max(ans,sum[i]);printf("%d",ans);return 0;
}
转载于:https://www.cnblogs.com/yyy2015c01/p/9718019.html
洛谷:P1901 发射站相关推荐
- 洛谷P1901 发射站
P1901 发射站 245通过 468提交 题目提供者该用户不存在 标签NOI导刊云端↑ 难度普及/提高- 时空限制1s / 128MB 提交 讨论 题解 最新讨论更多讨论 大神路过的看一下 输入 ...
- 洛谷 p4174 [noi2006] 最大获利 最小割(最大流),最大权闭合子图
题目 题解 题目 洛谷 p4174 建站花费p[i]元,如果a,b两个站都建起来了获利c元,问最大的获利. 题解 首先需要理解最大流求最大权闭合子图,这个我也不说了,又是转载博客. https://b ...
- (洛谷入门系列,适合洛谷新用户)洛谷功能全解
目录 前注 前言 第一章 进入方式 1.1 基础操作 1.2 两步验证 1.3 安全邮箱和安全手机 第二章 侧栏与主界面介绍 2.1 蓝底白色洛谷标志 2.2 "应用>>&quo ...
- 动态规划——洛谷_P1057传球游戏
题目: 题目描述 上体育课的时候,小蛮的老师经常带着同学们一起做游戏.这次,老师带着同学们一起做传球游戏.游戏规则是这样的:n个同学站成一个圆圈,其中的一个同学手里拿着一个球,当老师吹哨子时开始传球, ...
- 洛谷 - 试炼场(全部题目备份)
整理的算法模板合集: ACM模板 目录 1.新手村 1 - 1 洛谷的第一个任务 1 - 2 顺序与分支 1 - 3 循环!循环!循环! 1 - 4 数组 1 - 5 简单字符串 1 - 6 过程函数 ...
- 洛谷P1091 合唱队形
洛谷P1091 合唱队形 题目描述 N位同学站成一排,音乐老师要请其中的(N-K)位同学出列,使得剩下的K位同学排成合唱队形. 合唱队形是指这样的一种队形:设K位同学从左到右依次编号为1,2,-,K他 ...
- 【c++算法刷题笔记】——洛谷2
1. 洛谷练习--P1579 哥德巴赫猜想(升级版) 题目描述: 现在请你编一个程序验证哥德巴赫猜想. 先给出一个奇数n,要求输出3个质数,这3个质数之和等于输入的奇数. 输入格式: 仅有一行,包含一 ...
- 洛谷找最小值c语言,洛谷 P1478 陶陶摘苹果(升级版) C语言实现
原题地址:P1478 淘淘摘苹果(升级版)- 洛谷 题目描述 又是一年秋季时,陶陶家的苹果树结了n个果子.陶陶又跑去摘苹果,这次她有一个a公分的椅子.当他手够不着时,他会站到椅子上再试试. 这次与NO ...
- java 旅行家的预算_洛谷 P1016 旅行家的预算 Java解法
洛谷 P1016 旅行家的预算 Java解法 洛谷 P1016 旅行家的预算 Java解法 package com.two; import java.util.Scanner; public clas ...
最新文章
- android 比较两个list,比较两个List的内容是否相等
- SQL查询库、表,列等的一些操作
- 浏览网页需要登录的解决办法
- linux unix系统区别,Unix和Linux操作系统有什么区别?看这里!
- QT之在QML中使用C++类和对象的两种方式
- 新建和删除文件夹js代码
- python变量名必须以什么开头_python变量为什么不能以数字开头
- (87)FPGA面试题-同步FIFO与异步FIFO区别?异步FIFO代码设计
- (6)学习笔记 ) ASP.NET CORE微服务 Micro-Service ---- AOP框架
- Q-Learning算法学习
- java 彻底删除文件_如何删除java文件
- 推荐一个app,收纳杭州最全登山地图!附亲测过的亲子徒步路线推荐
- xnb转png_xnb exporter插件下载
- 微信小程序--萌系登陆界面
- Linux使用命令行工具管理用户和组
- git commit 提交信息写错,怎么更改?
- 有关“安装程序启动安装引擎失败:不支持此接口”错误的解决方法
- Java简史-SUN
- 联想小新310电脑Fn功能键切换
- 自动上色论文《Deep Exemplar-based Colorization》(2)
热门文章
- 通配符 泛域名 linux,openssl签署自己的泛域名(通配符)证书
- java二级考试简单应用题,计算机二级考试Java语言模拟考试(2)
- 交管12123显示当前环境存在风险_政策|取消驾驶证年龄上限、推行异地通办,12项交管新政来了...
- mysql pos点是什么,MySQL 5.6 主从报错一例
- 优质的网站结构设计有哪些好处?
- 网站常规基本优化工作有哪些?
- spss数据预处理步骤_数学建模准备必备的十个数据分析软件(数学建模从入门到精通)...
- phython在file同时写入两个_喜大普奔,两个开源的 Spring Boot + Vue 前后端分离项目可以在线体验了
- 前置机上如何地址转换_canvas原生层级较高,遮盖自定义tabbar,转换为图片解决...
- Java I/O在Android中应用(一)