[ARC174B] Bought Review 题解
【题目描述】
你开了一家店,有 \(A_i\) 个 \(i\) 星级评论,你可以花费 \(P_i\) 元买到一个 \(i\) 星评论,问使得这家店评论的星星平均值不小于 \(3\),最少要花多少钱。
\(1\le i \le 5\)。
【思路】
首先读入,判断平均值是否小于 \(3\),如果大于等于,直接输出 \(0\)
然后根据 \(3\times(当前的评论数)\) 算出平均值为 \(3\) 时,应该有多少个星星,还差多少个星星。
然后买 \(1,2,3\) 星的评论一定是没有用的。
现在问题转化为:
你现在要攒 \(n\) 个星星,可以花费 \(P_4\) 元买到 \(1\) 个星星,也可以花费 \(P_5\) 元买到 \(2\) 个星星
分类讨论:
- 首先,如果 \(P_4\times2\le P_5\)(一个一个买比一次买两个性价比高/一样),那么直接买就行。
- 否则,先两个两个买,然后最后如果有剩下的就再买一个。
做完了。
【Code】
#include <bits/stdc++.h>
#define int long long
using namespace std;
int T,A[6],P[6],Point;
void Main()
{
for(int i=1;i<=5;i++) scanf("%lld",&A[i]);
for(int i=1;i<=5;i++) scanf("%lld",&P[i]);
Point=3*(A[1]+A[2]+A[3]+A[4]+A[5])-(A[1]*1+A[2]*2+A[3]*3+A[4]*4+A[5]*5);
if(Point<=0){ //不需要贿赂
puts("0");
}else{
if(P[4]*2<=P[5]){ //算性价比
printf("%lld\n",Point*P[4]); //不如一个一个贿赂
}else{
if(Point%2==0) printf("%lld\n",Point*P[5]/2); //两个两个贿赂
else printf("%lld\n",(Point-1)*P[5]/2+min(P[4],P[5])); //两个两个贿赂,多一个
}
}
}
signed main()
{
scanf("%lld",&T);
while(T--){
Main();
}
return 0;
}
[ARC174B] Bought Review 题解的更多相关文章
- “玲珑杯”ACM比赛 Round #12题解&源码
我能说我比较傻么!就只能做一道签到题,没办法,我就先写下A题的题解&源码吧,日后补上剩余题的题解&源码吧! A ...
- ZROI WC Round1 题解
ZROI WC Round1 题解 Problem A 题意 一个 \(n \times m\) 格子图,一个人从左上角出发,每次向右或者向下走一格,方法如下: 如果他在最下面一排,那么他会往右行走. ...
- ZROI WC Round5 题解
ZROI WC Round5 题解 Problem A 题意 给定一个长度为 \(n\) 的序列,操作是交换两个相邻的数,要求将序列变成先单调不降再单调不升,求最小操作数,注意可以完全单调不降或者完全 ...
- codeforces#536题解
CodeForces#536 A. Lunar New Year and Cross Counting Description: Lunar New Year is approaching, and ...
- Codeforces Round #470 Div. 2题解
A. Protect Sheep time limit per test 1 second memory limit per test 256 megabytes input standard inp ...
- CF 1131A,1131B,1131C,1131D,1131F(Round541 A,B,C,D,F)题解
A. Sea Battle time limit per test 1 second memory limit per test 256 megabytes input standard input ...
- P2882 Face The Right Way G 题解
题目 Farmer John has arranged his N \((1 ≤ N ≤ 5,000)\) cows in a row and many of them are facing forw ...
- 小白开始成长了+洛谷1488与CF629A Far Relative’s Birthday Cake题解
终于开始我的博客生活了,希望博客可以让我记住学了什么,错了什么,接下来会有什么将出现. 记录写ACM生涯中的一些经验和网工经验吧,如果有人看我博客的话,希望可以留言给我提提意见,指导指导我啦~~~ 正 ...
- 我们是怎么做Code Review的
前几天看了<Code Review 程序员的寄望与哀伤>,想到我们团队开展Code Review也有2年了,结果还算比较满意,有些经验应该可以和大家一起分享.探讨.我们为什么要推行Code ...
- Code Review 程序员的寄望与哀伤
一个程序员,他写完了代码,在测试环境通过了测试,然后他把它发布到了线上生产环境,但很快就发现在生产环境上出了问题,有潜在的 bug. 事后分析,是生产环境的一些微妙差异,使得这种 bug 场景在线下测 ...
随机推荐
- C++标准库字符串流sstream
sstream与strstream 在C++有两种字符串流,一种在<strstream>中定义,另一种在<sstream>中定义,两者的区别如下: strstream里包含st ...
- 记录--怎么写一个可以鼠标控制旋转的div?
这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助 说在前面 鼠标控制元素旋转在现在也是一个很常见的功能,让我们从实现div元素的旋转控制开始来了解元素旋转的具体原理和实现方法吧. 效果展示 ...
- .NET Emit 入门教程:第五部分:动态生成方法(MethodBuilder 与 DynamicMethod)
前言: 当我们涉及到在运行时生成和定义方法时,便需要使用到C#中的两个关键类之一:MethodBuilder 或 DynamicMethod. 这两者都属于反射(Reflection.Emit)的一部 ...
- JSON.stringify() 第三个参数的使用
语法 JSON.stringify(value[, replacer[, space]]) 参数说明: value: 必需, 要转换的 JavaScript 值(通常为对象或数组). replacer ...
- Oracle存储过程模板
PROCEDURE proc_test(p_id IN NUMBER, v_cur OUT SYS_REFCURSOR, p_result_code OUT NUMBER, p_result_mess ...
- 关于数据校验Bean Validation的学习
1,导相关依赖 2,常用的Validation注解 @NotNull: 标记字段不能为 null @NotEmpty: 标记集合字段不为空(至少要有一个元素) @NotBlank: 标记字段串字段不能 ...
- quantus18的signaltap逻辑分析仪
SignalTap的使用 1.SignalTap的作用 SignalTap就是一个IP(对应xilinx的ila),可以将引脚的状态实时显示.这是基于板级的验证,可以有效处理一些仿真难以实现的波形测试 ...
- RelationNet:学习目标间关系来增强特征以及去除NMS | CVPR 2018
论文基于NLP的注意力机制提出了目标关系模块,通过与其它目标的比对增强当前目标的特征,而且还可以代替NMS进行端到端的重复结果去除,思想十分新颖,效果也不错 来源:晓飞的算法工程笔记 公众号 论文 ...
- MySQL创建和操纵表
表创建基础 CREATE TABLE customers ( cust_id int NOT NULL AUTO_INCREMENT , cust_name char(50) NOT NULL , c ...
- RedisTemplate 的简单使用
redisTemplate.opsForValue() 方法可以获得一个 Redis String 的操作类,通过该类可以执行一系列字符串类型数据的操作,例如获取.设置.删除数据等. // 示例 1: ...