• 百度松果 买礼物(贪心)


    题目描述

    小码哥谈恋爱了!但是他更喜欢玩派派,当他玩完派派时发现已经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
    
    • 1
    • 2

    输出样例

    90.0000
    
    • 1
    分析

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

    #include 
    
    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;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
  • 相关阅读:
    07MCM一位评委老师的意见及MIT取得特等奖的历程描述
    span 元素自带间距??
    Linux每日智囊
    使用Java将PPT、PPTX和PDF转换为图片
    利用京东云Web应用防火墙实现Web入侵防护
    Nginx + Tomcat 实现负载均衡
    vue3组件封装系列-表格及分页
    浏览器缓存 四种缓存分类 两种缓存类型
    谷歌浏览器自定义标签页 newtab
    Python使用turtle绘图:distance();xcor();ycor();heading()
  • 原文地址:https://blog.csdn.net/Jay_fearless/article/details/127685925