POJ2393 Yogurt factory 【贪心】

Yogurt factory

Time Limit: 1000MS   Memory Limit: 65536K
Total Submissions: 6821   Accepted: 3488

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.

Source

USACO 2005 March Gold

每次更新相邻的下一周即可。因为若下一周被更新,那么下一周可以用来更新剩下的周,所以当前周只需要负责下一周。

#include <stdio.h>
#include <string.h>

#define maxn 10002

int min(int a, int b) {
    return a < b ? a : b;
}

int X[maxn], Y[maxn];

int main() {
    int N, S, i, j;
    __int64 sum;
    while(scanf("%d%d", &N, &S) == 2) {
        for(i = 0; i < N; ++i)
            scanf("%d%d", &X[i], &Y[i]);
        for(i = sum = 0; i < N; ++i) {
            sum += X[i] * Y[i];
            if(i != N - 1)
                X[i+1] = min(X[i+1], X[i] + S);
        }
        printf("%I64d\n", sum);
    }
    return 0;
}
时间: 2024-10-11 05:18:23

POJ2393 Yogurt factory 【贪心】的相关文章

bzoj 1680\1740 : [Usaco2005 Mar]Yogurt factory 贪心 双倍经验

1680: [Usaco2005 Mar]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 com

poj_2393 Yogurt factory 贪心

Yogurt factory Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 16669   Accepted: 8176 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

POJ2393 Yogurt factory

1 /* 2 思路:贪心 (又一次抄题解...) 3 考虑到每周的奶酪可由前几周的储存 也可本周制作 4 可证明出若第x周生产i1周所需奶酪更便宜 则i2周的奶酪在第x周生产一定比在第i1周生产更便宜 5 因此可以把每周储存成本看成价格的一部分 则当前选取方案只有从以前最便宜的一周生产和这一周生产两种选择 6 贪心选取 7 */ 8 #include<iostream> 9 #include<cstdio> 10 #include<queue> 11 using nam

poj Yogurt factory (贪心水题)

# include <stdio.h> # include <string.h> # include <algorithm> using namespace std; int main() { int i,n,s; __int64 sum ; int cost[10010],num[10010]; while(~scanf("%d%d",&n,&s)) { for(i=0;i<n;i++) scanf("%d%d&qu

poj 2393 Yogurt factory(贪心)

传送门 解题思路 对于第\(i\)周来说,最小的花费 \(sum=min(y[i]*(c[j]+s(i-j)))(1<=j<=i)\),所以\(sum=min(y[i]*(c[j]-s[j]+s[i])\),发现\(y[i]\)与\(s[i]\)均为定值,就是让最小化\(c[j]-s[j]\),然后就直接维护个最小值每次更新答案即可. 代码 #include<iostream> #include<cstdio> #include<cstring> #incl

Yogurt factory(POJ 2393 贪心 or DP)

Yogurt factory Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8205   Accepted: 4197 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

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) c

1740: [Usaco2005 mar]Yogurt factory 奶酪工厂

1740: [Usaco2005 mar]Yogurt factory 奶酪工厂 Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 119  Solved: 100[Submit][Status][Discuss] Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10

BZOJ1680: [Usaco2005 Mar]Yogurt factory

1680: [Usaco2005 Mar]Yogurt factory Time Limit: 5 Sec  Memory Limit: 64 MBSubmit: 106  Solved: 74[Submit][Status][Discuss] Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the next N (1 <= N <= 10,000)