码迷,mamicode.com
首页 > 其他好文 > 详细

BZOJ 1680 [Usaco2005 Mar]Yogurt factory:贪心【只用考虑上一个】

时间:2017-10-07 14:43:55      阅读:153      评论:0      收藏:0      [点我收藏+]

标签:+=   usaco   iostream   ios   php   targe   最优   接下来   ble   

题目链接:http://www.lydsy.com/JudgeOnline/problem.php?id=1680

题意:

  在接下来的n周内,第i周生产一吨酸奶的成本为c[i],订单为y[i]吨酸奶。

  酸奶可以提前生产,可以存放无限长的时间,存放一周的花费为s。

  问你在完成所有订单的前提下,最小的花费为多少。

 

题解:

  贪心。

  p[i]代表第i周的最小成本。

  对于p[i],只用考虑p[i-1],因为已经保证了p[i-1]是i-1之前所有周的最优答案。

  所以转移为:p[i] = min(c[i], p[i-1]+s)。

  最小花费 = ∑ p[i]*y[i]。

 

AC Code:

 1 #include <iostream>
 2 #include <stdio.h>
 3 #include <string.h>
 4 #define MAX_N 10005
 5 #define INF 10000000
 6 
 7 using namespace std;
 8 
 9 int n,s;
10 int c[MAX_N];
11 int y[MAX_N];
12 int p[MAX_N];
13 long long ans=0;
14 
15 void read()
16 {
17     cin>>n>>s;
18     for(int i=1;i<=n;i++)
19     {
20         cin>>c[i]>>y[i];
21     }
22 }
23 
24 void solve()
25 {
26     p[0]=INF;
27     for(int i=1;i<=n;i++)
28     {
29         p[i]=min(c[i],p[i-1]+s);
30         ans+=p[i]*y[i];
31     }
32 }
33 
34 void print()
35 {
36     cout<<ans<<endl;
37 }
38 
39 int main()
40 {
41     read();
42     solve();
43     print();
44 }

 

BZOJ 1680 [Usaco2005 Mar]Yogurt factory:贪心【只用考虑上一个】

标签:+=   usaco   iostream   ios   php   targe   最优   接下来   ble   

原文地址:http://www.cnblogs.com/Leohh/p/7634254.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!