百度松果 买礼物(贪心)

题目描述

小码哥谈恋爱了!但是他更喜欢玩派派,当他玩完派派时发现已经x点x分了,由于一直不回女朋友消息,女朋友现在的怒气值为 m m m,为了赔偿女朋友,他要去给女朋友买礼物,每过一分钟女朋友的怒气值会上升 k k k,而小码哥可以在任意时间去买礼物(假设买礼物不花费时间),每个礼物花费 q q q元,可以抵消 p p p个怒气值,而商店从21:00开始打折25%,请你帮助小码哥找出最小花费的金额就可以让女朋友消气(女朋友消气代表她怒气值小于或等于0),保证题中所给数据均合法。

输入格式:

第一行输入两个数字代表当前小时数(00 ~ 23)和分钟数(00 ~ 59)
第二行分别输入m,k,q,pm,k,q,p,
1   ≤   m   ≤   1 0 4 , 1   ≤   k , q , p   ≤   1 0 2 1 ≤ m ≤ 10^{4},1 ≤ k,q,p ≤ 10^{2} 1 m 104,1 k,q,p 102

输出格式:

输出所需最少钱数(保留四位小数)

输入样例

21 00
100 1 6 5

输出样例

90.0000
分析

其实最优解只有两个策略,要么一开始就把礼物买完,计算此时的利润 c 1 c1 c1,要么拖到晚上9点买计算此时的利润 c 2 c2 c2,二者的最小值就是最少花销。

#include<bits/stdc++.h> 

using namespace std;
int n,m,k,q,p,x,hh,mm;
int cal(int hh,int mm) //计算当前时间离晚上9点有多少
{
    int s=21*60;
    return s-hh*60-mm;
}
int main()
{
    cin>>hh>>mm;
    cin>>m>>k>>q>>p;
    int tot=cal(hh,mm);
    tot=max(0,tot)*k; //到晚上9点女友要增加多少怒气
    int x1=ceil(1.0*(m+tot)/p);	//全部在晚上9点后买礼物要至少买几个
    double c1=q*0.75*x1;
    int x2=ceil(1.0*m/p);	//一开始就买礼物至少买几个
    double ans=q*x2;
    ans=min(c1,ans);	//二者最小值就是答案

    printf("%.4lf",ans);
    return 0;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Jay_fearless

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值