美文网首页
月饼问题

月饼问题

作者: Fattyu | 来源:发表于2017-07-18 15:45 被阅读0次

月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市场的最大需求量,请你计算可以获得的最大收益是多少。

注意:销售时允许取出一部分库存。样例给出的情形是这样的:假如我们有3种月饼,其库存量分别为18、15、10万吨,总售价分别为75、72、45亿元。如果市场的最大需求量只有20万吨,那么我们最大收益策略应该是卖出全部15万吨第2种月饼、以及5万吨第3种月饼,获得 72 + 45/2 = 94.5(亿元)。

输入格式:

每个输入包含1个测试用例。每个测试用例先给出一个不超过1000的正整数N表示月饼的种类数、以及不超过500(以万吨为单位)的正整数D表示市场最大需求量。随后一行给出N个正数表示每种月饼的库存量(以万吨为单位);最后一行给出N个正数表示每种月饼的总售价(以亿元为单位)。数字间以空格分隔。

输出格式:

对每组测试用例,在一行中输出最大收益,以亿元为单位并精确到小数点后2位。

 #include<iostream>
 #include<algorithm>
 #include <vector>
 using namespace std;
 struct H
 {
     double cun;//库存
     double mon;//总售价
     double s;//单价
 };
 bool compare(H a,H b)
 {
     return a.s>b.s;
 }
 int main()
 {
     int kind,n;
     cin>>kind>>n;
     vector<H> array(n);
     for(int i=0;i<kind;i++)
     {
         cin>>array[i].cun;
     }
     for(int i=0;i<kind;i++)
     {
         cin>>array[i].mon;
     }
     for(int i=0;i<kind;i++)
     {
         array[i].s=array[i].mon/array[i].cun;
     }
     
     sort(array.begin(),array.end(),compare);
     
     int term=0;
     double sum=0;
    for(int i=0;i<kind &&term!=n;i++)
     {
         if((n-term)>=array[i].cun)
         {
            term+=array[i].cun;
            sum+=array[i].mon;
         }
         else
         {
             sum+=(n-term)*array[i].s;
             term=n;
         }
     }
     printf("%.2f",sum);
     return 0;
 }

运行时可以的,但提交说是有异常退出,唔。
所以参考

#include <iostream>
#include <stdlib.h>

using namespace std;

int compare(const void *a_t, const void *b_t){
    double *a = (double *)a_t, *b = (double *)b_t;
    return b[2] > a[2];
}

int main(){
    int type, max;
    scanf("%d %d", &type, &max);
    double moonCake[type][3]; //行数一会换成type,n行三列,分别是库存量、总售价、单价
    for(int i = 0; i < 2; ++i){
        for(int j = 0; j < type; ++j){
            scanf("%lf", &moonCake[j][i]);
        }
    }
    for(int l = 0; l < type; ++l){
        moonCake[l][2] = moonCake[l][1] / moonCake[l][0];
    }
    qsort(&moonCake[0], type, sizeof(moonCake[0]), compare);
    double profit = 0;
    double tmp = max;
    for(int k = 0; k < type && tmp != 0; ++k){
        if(moonCake[k][0] <= tmp){
            profit += moonCake[k][1];
            tmp -= moonCake[k][0];
        }
        else{
            profit += (moonCake[k][2] * tmp);
            tmp = 0;
        }
    }
    printf("%.2f\n", profit);
    return 0;
}```

作者:FlyRush
链接:http://www.jianshu.com/p/ba3e95d9c72b
來源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章

  • 月饼问题

    月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不同风味的月饼。现给定所有种类月饼的库存量、总售价、以及市...

  • (贪心)月饼问题

    问题描述 月饼是中国人在中秋佳节时吃的一种传统食品,不同地区有许多不用风味的月饼。现给定所有种类月饼的库存量,总售...

  • 解决月饼问题

    额……我没自己做。 因为我只能用糯米粉做那种年糕状的饼皮…… 而我想吃那种传统的饼皮…… 那种油油的,会掉渣渣的那...

  • 传统节日的精华在于它带给我们简单的生活

    又是一年的中秋佳节到来,各大媒体又开始关注着月饼质量、月饼包装的问题,以及节后月饼去向等等的问题。然而在大众的话语...

  • 年年都被黑的五仁月饼,究竟是怎么回事?

    今年是2020年,就“五仁月饼究竟算不算月饼”这个问题,网友们也已经从互联网的蛮荒时代,争论到了现在。 五仁月饼,...

  • 中秋节月饼问题你关注过么?

    中秋节也叫团圆节,中秋月圆人团圆,每年都过中秋节你都是怎么过?买月饼吃还是单位发月饼? 月饼问题现在已经是屡见不鲜...

  • 课堂案例

    1、(数学)问题引领,学生主体 《品月饼,巧探究》。老师创设中秋话团圆,品月饼,巧探究的情境,引导学生分一分,把一...

  • 高田月饼

    川酥月饼 蛋黄月饼 大翻毛月饼 玫瑰花月饼

  • 简析:月饼的十大派系

    广式月饼 广式月饼:这种派系起源自1889年,原产自广州,以莲蓉月饼、豆沙月饼、五仁月饼、水果月饼、叉烧月饼等为代...

  • 人生絮语.月饼

    【一】 月饼好吃月饼甜,五仁芝麻样样全。 月饼好看月饼圆,嫦娥玉兔忙不闲。 【二】 月饼奥秘讲不完,月饼人生也艰难...

网友评论

      本文标题:月饼问题

      本文链接:https://www.haomeiwen.com/subject/qrdhkxtx.html