精力(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 精力管理的书,我们有时候往往不是时间规划不够,而是没有规划好自己的精力. 橙色字体是自己对于这本书的现 ...
随机推荐
- 《结对-HTML贪吃蛇游戏项目-测试过程》
项目托管平台地址:https://gitee.com/zhaojianhuiAA/TanChiShe/blob/master/snake.html 项目成员:赵建辉.马壮. 测试: 1.界面:用jav ...
- maven添加oracle驱动
由于oracle商业版权问题,maven是不可以直接下载jar包的,所以.. 先将ojdbc14.jar放到用户目录,win7放到C:\Users\Administrator然后在cmd执行 ...
- TOTP算法 基于时间的一次性密码
/** Copyright (c) 2011 IETF Trust and the persons identified as authors of the code. All rights rese ...
- axios封装
前言 作为出入vue的小萌新,我在写请求的时候,也是毫不犹豫写了ajax,结果肯定是不行的... Vue 原本有一个官方推荐的 ajax 插件 vue-resource,但是自从 Vue 更新到 2. ...
- Andrew Ng机器学习第一章——单变量线性回归
监督学习算法工作流程 h代表假设函数,h是一个引导x得到y的函数 如何表示h函数是监督学习的关键问题 线性回归:h函数是一个线性函数 代价函数 在线性回归问题中,常常需要解决最小化问题.代价函数常用平 ...
- Linq 集合操作符 Except,Intersect,Union
IList<string> s1 = new List<string>() { "One", "Two", "Three&qu ...
- kafka---broker 保存消息
1 .存储方式 物理上把 topic 分成一个或多个 patition(对应 server.properties 中的 num.partitions=3 配置),每个 patition 物理上对应一个 ...
- spring7——AOP之通知和顾问
通知和顾问都是切面的实现形式,其中通知可以完成对目标对象方法简单的织入功能. 而顾问包装了通知,可以让我们对通知实现更加精细化的管理,让我们可以指定具体的切入点. 通知分为前置通知,环绕通知及后置通知 ...
- django关闭调试信息,打开内置错误视图
1 内置错误视图 Django内置处理HTTP错误的视图,主要错误及视图包括: 404错误:page not found视图 500错误:server error视图 400错误:bad reques ...
- powerdesigner将name的名字赋给comment
1 PowerDesigner中批量根据对象的name生成comment的脚本 执行方法:Open PDM -- Tools -- Execute Commands -- Run Script Vb ...