zoukankan      html  css  js  c++  java
  • poj 2393 Yogurt Factory(贪心)

    Description

    The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000) weeks, the price of milk and labor will fluctuate weekly such that it will cost the company C_i (1 <= C_i <= 5,000) cents to produce one unit of yogurt in week i. Yucky's factory, being well-designed, can produce arbitrarily many units of yogurt each week. 

    Yucky Yogurt owns a warehouse that can store unused yogurt at a constant fee of S (1 <= S <= 100) cents per unit of yogurt per week. Fortuitously, yogurt does not spoil. Yucky Yogurt's warehouse is enormous, so it can hold arbitrarily many units of yogurt. 

    Yucky wants to find a way to make weekly deliveries of Y_i (0 <= Y_i <= 10,000) units of yogurt to its clientele (Y_i is the delivery quantity in week i). Help Yucky minimize its costs over the entire N-week period. Yogurt produced in week i, as well as any yogurt already in storage, can be used to meet Yucky's demand for that week.

    Input

    * Line 1: Two space-separated integers, N and S. 

    * Lines 2..N+1: Line i+1 contains two space-separated integers: C_i and Y_i.

    Output

    * Line 1: Line 1 contains a single integer: the minimum total cost to satisfy the yogurt schedule. Note that the total might be too large for a 32-bit integer.

    Sample Input

    4 5
    88 200
    89 400
    97 300
    91 500

    Sample Output

    126900

    Hint

    OUTPUT DETAILS: 
    In week 1, produce 200 units of yogurt and deliver all of it. In week 2, produce 700 units: deliver 400 units while storing 300 units. In week 3, deliver the 300 units that were stored. In week 4, produce and deliver 500 units. 
    题意:工厂每周生产奶酪的成本不同,每周生产奶酪达到指标后多余的可以储存,储存需要每周S的费用,问怎么生产成本最低,输出最低成本。
    思路:DP;
    具体:用每周的成本和前几周的最低的储存成本比较。
    ac代码:
    #include<stdio.h>
    #include<string.h>
    int min(int a,int b)
    {
        if(a>b)
        return b;
        else
        return a;
    }
    int main()
    {
        int a,b,i,j,n,x[100000],y[100000];
        while(scanf("%d%d",&a,&b)!=EOF)
        {
            long long sum=0;
            for(i=1;i<=a;i++)
            scanf("%d%d",&x[i],&y[i]);
            for(i=2;i<=a;i++)
            x[i]=min(x[i],x[i-1]+b);
            for(i=1;i<=a;i++)
            sum+=x[i]*y[i];
            printf("%lld
    ",sum);
        }
    }

    有什么问题可以评论提问。

  • 相关阅读:
    夺命雷公狗---ECSHOP---08---商品页的拇改成星星
    夺命雷公狗---ECSHOP---07---商品价格的遍历
    夺命雷公狗---ECSHOP---06---商品倒计时的实现
    WordPress博客密码忘记的解决方法
    夺命雷公狗---js_mv思路
    LAMP前一定要关闭防火墙
    夺命雷公狗---Smarty NO:25 缓存控制技术2(完结)
    夺命雷公狗---Smarty NO:24 缓存控制技术1
    夺命雷公狗---Smarty NO:23 常用方法
    夺命雷公狗---Smarty NO:22 常量—变量
  • 原文地址:https://www.cnblogs.com/Xacm/p/3825609.html
Copyright © 2011-2022 走看看