精力(power)
【问题描述】
假设你有一个属性叫”精力值”, 这个属性的上限为 E, 一开始你的精力值
为 E.每天结束时, 该属性会回复 R,但回复后不会超过上限 E。 现在有 N 天时
间给你去工作, 若第 i 天花费 K 的体力值去工作,那么你可以获得 V[i] * K 的
金钱。
问你这 N 天的最大收益是多少
【输入格式】
第一行一个整数 case,表示数据组数。
对于每一组数据, 第一行有三个整数 E, R, N, 第二行 N 个整数描述
V[1]~V[n]
【输出格式】
对于每组数据, 输出你的最大收益
【输入样例】
1
5 2 2
2 1
【输出样例】
12
【样例解释】
第一天用 5 体力, 接下来回复 2 点体力, 用光。
首先我们贪心,在越大的v是分配最多的体力
因为有体力回复的机制,所以不能一味分给最大的
考虑i-1和i,假设h[i]>h[i-1]
那么可以先将体力全部分给i-1,在把i-1的体力转给i
类似的用单调栈,维护一个单调递减的单调栈
设j=q[tail],且h[i]>h[j],j所用体力为rest[tail],i使用体力为p,显然p初始为R
则p+=min(m-p,rest[tail])
这里有个条件,p<m&&h[q[tail]]<h[i]
因为栈单调递减,所以尽量只把前面的且比h[i]小的体力转移,且总体力要<=m
q[tail]出栈代表体力已经转完了
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
int gi()
{
char ch=getchar();
while (ch<''||ch>'')ch=getchar();
int x=;
while (ch>=''&&ch<='')
{
x=x*+ch-'';
ch=getchar();
}
return x;
}
long long s,r,n,a[],rest[],q[];
long long ans;
int main()
{int T,i,j,tail;
freopen("power.in","r",stdin);
freopen("power.out","w",stdout);
cin>>T;
while (T--)
{tail=;
ans=;
scanf("%lld%lld%lld",&s,&r,&n);
if (r>=s)
{
for (i=;i<=n;i++)
a[i]=gi(),ans+=a[i]*s;
cout<<ans;
}
else
{
int p=s;
for (i=;i<=n;i++)
{
a[i]=gi();
while (tail&&q[tail]<a[i]&&p<s)
{
int w=min(s-p,rest[tail]);
ans-=a[tail]*w;
p+=w;tail--;
}
tail++;
q[tail]=a[i];
ans+=a[i]*p;
rest[tail]=p;
p=r;
}
cout<<ans<<endl;
}
}
}
精力(power)的更多相关文章
- 微软新神器-Power BI横空出世,一个简单易用,还用得起的BI产品,你还在等什么???
在当前互联网,由于大数据研究热潮,以及数据挖掘,机器学习等技术的改进,各种数据可视化图表层出不穷,如何让大数据生动呈现,也成了一个具有挑战性的可能,随之也出现了大量的商业化软件.今天就给大家介绍一款逆 ...
- 第二篇:Power BI数据可视化之基于Web数据的报表制作(经典级示例)
前言 报表制作流程的第一步显然是从各个数据源导入数据,Power BI能从很多种数据源导入数据:如Excel,CSV,XML,以及各类数据库(SQL Server,Oracle,My SQL等),两大 ...
- 第一篇:Power BI数据可视化概述
前言 "可视化之工具,可爱者甚蕃.统计学家独爱R,自Python来,世人盛爱matplotlib.余独爱Power BI之出微软而不染(免费),濯Office而不妖(够精简).......& ...
- .NET CORE 框架ABP的代码生成器(ABP Code Power Tools )使用说明文档
前言 各位好,又是一个多月没更新文章了. 原因嘛,大家都懂的,太忙了~ 临近年末,公司的项目.年会的做技术支持,同事朋友聚餐也比较频繁. 当然视频教程也没有继续更新.我的锅~ 但是这个月好歹抽空做了一 ...
- HDU 6034 Balala Power!【排序/进制思维】
Balala Power![排序/进制思维] Time Limit: 4000/2000 MS (Java/Others) Memory Limit: 131072/131072 K (Java ...
- 小目标 | Power BI新人快速上手手册
· 适用人群:数据分析专业人士,在数据分析方向需求发展人士 · 应用场景:数据汇报.数据可视化展现.数据建模分析 · 掌握难度:★★★★☆ 本期讲师 『PowerPivot工坊』公众号提供Power ...
- Linux power supply class(1)_软件架构及API汇整【转】
1. 前言 power supply class为编写供电设备(power supply,后面简称PSY)的驱动提供了统一的框架,功能包括: 1)抽象PSY设备的共性,向用户空间提供统一的API. 2 ...
- Power Platform之Power Automate新增RPA功能
什么是RPA RPA( Robotic Process Automation 机器人流程自动化软件),是一种新型的人工智能的虚拟流程自动化机器人.RPA的核心是通过自动化.智能化技术来“替代人”进 ...
- 三天读完调整自己每天的精力——读书笔记(Unfinished)
近段时间精力低下,读了一本Jim Loehr的The Power full engagement 精力管理的书,我们有时候往往不是时间规划不够,而是没有规划好自己的精力. 橙色字体是自己对于这本书的现 ...
随机推荐
- JavaScript(第十七天)【浏览器检测】
由于每个浏览器都具有自己独到的扩展,所以在开发阶段来判断浏览器是一个非常重要的步骤.虽然浏览器开发商在公共接口方面投入了很多精力,努力的去支持最常用的公共功能:但在现实中,浏览器之间的差异,以及不同浏 ...
- 20155215 第二周测试1 与 myod
课堂测试 第一题 每个.c一个文件,每个 .h一个文件,文件名中最好有自己的学号 用Vi输入图中代码,并用gcc编译通过 在Vi中使用K查找printf的帮助文档 提交vi编辑过程截图,要全屏,包含自 ...
- 201621123062《java程序设计》第五周作业总结
1. 本周学习总结 1.1 写出你认为本周学习中比较重要的知识点关键词 关键词:interface.Comparable.comparator 1.2 尝试使用思维导图将这些关键词组织起来.注:思维导 ...
- 《高级软件测试》云平台Jira的配置
首先点击进入以下网址: https://www.atlassian.com/ondemand/signup/form?product=jira-software.ondemand 填写好信息,Star ...
- centos7 编译安装greenplum5.7
一.配置系统 安装是以一个主节点,三个子节点进行安装.gp是在github上下载的5.7的源码.地址https://github.com/greenplum-db/gpdb/tree/5.7.0. 1 ...
- iOS 11 导航栏 item 偏移问题 和 Swift 下 UIButton 设置 title、image 显示问题
html,body,div,span,applet,object,iframe,h1,h2,h3,h4,h5,h6,p,blockquote,pre,a,abbr,acronym,address,bi ...
- C++中const对象和非const对象调用成员函数问题
一.类MyClass 二.主函数调用 三.结果
- django的models模型类的常用数据类型和选项
django框架的models模块ORM框架,能够让我们通过编写类的方式,帮助我们自动生成数据库表. 生成的数据库表名为 应用模块名称_类名 数据库表中字段名 如果我们没有在参数中指定,就是我们写的类 ...
- SpringBoot集成Mybatis
1.创建SpringBoot工程 根据 http://www.cnblogs.com/vitasyuan/p/8765329.html 说明创建SpringBoot项目. 2.添加相关依赖 在pom. ...
- mysql基础练习题
一.表关系 请创建如下表,并创建相关约束 二.操作表 1.自行创建测试数据 /* Navicat MySQL Data Transfer Source Server : mysql5.7.1 Sour ...