百炼 POJ2393:Yogurt factory【把存储费用用递推的方式表达】
2393:Yogurt factory
- 总时间限制:
- 1000ms
- 内存限制:
- 65536kB
- 描述
- 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. - 输入
- * 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. - 输出
- * 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.
- 样例输入
-
4 5
88 200
89 400
97 300
91 500 - 样例输出
-
126900
- 提示
- 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. - 【题目大意】
有一个制作酸奶的工厂,需要在接下来的N(1<=N<=10000)周里
生产酸奶,第i周的成本为Ci(1<=Ci<=5000),工厂有一个无限大的仓库可
以存储生产好了的酸奶,并且这些酸奶不会过期,可以一直存储,但是存
储每单位酸奶每周要花费S(1<=S<=100)。计算:要满足条件:工厂第i周必
须送出Yi(1<=Yi<=10000)单位的酸奶(可以从仓库中送出,也可以本周生产),
最小花费是多少?【样例说明】:第一周生产200单位酸奶并且全部送出;第二周,生产700单位:送出400,存储300; 第三周,送出第二周存储的300单位; 第四周,生产500单位并全部送出。
【题目分析】 第i周的酸奶可以是任意小于i的周生产的。于是如果第i周的酸奶在第j(i>j)周生产,相当于这酸奶在第j周生产,并且花费是第i周的成本加上(i-j)周的储存费用。
第i周的最小花费是可以由第i-1周的最小花费推出的:mincost(i) = min( mincost(i-1)+s,Ci );而第一周的最小成本就是C1,因为第一周的酸奶只能第一周生产。
于是从第一周开始可以逐步推出所有周的最小花费:
1 for( int i=1; i<=N-1; i++ ) {
2 week[i].C = min( week[i-1].C+S,week[i].C );
3 //i推i+1,到N-1时就已经推出N了 N单独处理就行了
4 }关于数据范围:最坏的情况是,有10000周,每周都需要送出10000单位酸奶,
并且每周的成本都是5000.在这种情况下,共需要10000*5000*10000=5e+11的花费。
所以使用long long 就可以了。【代码】
1 #include <iostream>
2 #include <algorithm>
3 using namespace std;
4
5 const int maxn = 10010;
6
7 struct _week
8 {
9 int C;
10 int Y;
11 };
12 _week week[maxn];
13 int N,S;
14
15 int main()
16 {
17 cin >> N >> S;
18 long long totalcost = 0;
19 for( int i=1; i<=N; i++ ) {
20 cin >> week[i].C >> week[i].Y;
21 }
22
23 //推出2到N-1周的最小花费同时计算总费用
24 for( int i=1; i<=N-1; i++ ) {
25 totalcost += week[i].C * week[i].Y;
26 week[i+1].C = min( week[i].C+S,week[i+1].C );
27 }
28
29 //总费用加上最后一周(第N周)的花费
30 totalcost += week[N].C * week[N].Y;
31 cout << totalcost << endl;
32 return 0;
33 }
百炼 POJ2393:Yogurt factory【把存储费用用递推的方式表达】的更多相关文章
- POJ2393 Yogurt factory 【贪心】
Yogurt factory Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 6821 Accepted: 3488 De ...
- poj2393 Yogurt factory(贪心,思考)
https://vjudge.net/problem/POJ-2393 因为仓储费是不变的. 对于每一周,要么用当周生产的,要么接着上一周使用的价格(不一定是输入的)加上固定的仓储费用. 应该算是用到 ...
- POJ-2393 Yogurt factory 贪心问题
题目链接:https://cn.vjudge.net/problem/POJ-2393 题意 有一个生产酸奶的工厂,还有一个酸奶放在其中不会坏的储存室 每一单元酸奶存放价格为每周s元,在接下来的N周时 ...
- poj-2393 Yogurt factory (贪心)
http://poj.org/problem?id=2393 奶牛们有一个工厂用来生产奶酪,接下来的N周时间里,在第i周生产1 单元的奶酪需要花费ci,同时它们也有一个储存室,奶酪放在那永远不会坏,并 ...
- poj2393 Yogurt factory
思路: 贪心. 实现: #include <iostream> #include <cstdio> #include <algorithm> using names ...
- POJ 2393 Yogurt factory 贪心
Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the ...
- BZOJ 1740: [Usaco2005 mar]Yogurt factory 奶酪工厂 贪心 + 问题转化
Description The cows have purchased a yogurt factory that makes world-famous Yucky Yogurt. Over the ...
- poj 2393 Yogurt factory
http://poj.org/problem?id=2393 Yogurt factory Time Limit: 1000MS Memory Limit: 65536K Total Submis ...
- BZOJ1680: [Usaco2005 Mar]Yogurt factory
1680: [Usaco2005 Mar]Yogurt factory Time Limit: 5 Sec Memory Limit: 64 MBSubmit: 106 Solved: 74[Su ...
随机推荐
- Java并发-线程池篇-附场景分析
作者:汤圆 个人博客:javalover.cc 前言 前面我们在创建线程时,都是直接new Thread(): 这样短期来看是没有问题的,但是一旦业务量增长,线程数过多,就有可能导致内存异常OOM,C ...
- mysql基本命令(增,查,改,删)
from oldboy egon
- Docker------Idea连接远程并生成和上传镜像
1.Docker开启远程访问连接 备注: 1)Linux是CentOS7版本 2)安装Docker可参考: https://www.cnblogs.com/tianhengblogs/p/125202 ...
- 统一UOS操作系统 修改源地址
统一UOS操作系统 修改源地址 问题: 执行apt-get update的时候提示: root@sugon-PC:/etc/apt# apt-get update -y错误:1 https://uos ...
- 1.4 重置root用户密码
图1-45 系统的欢迎界面 1.4 重置root用户密码 平日里让运维人员头疼的事情已经很多了,因此偶尔把Linux系统的密码忘记了并不用慌,只需简单几步就可以完成密码的重置工作.但是,如果您是第一 ...
- Linux巡检常用命令
# uname -a # 查看内核/操作系统/CPU信息 # head -n 1 /etc/issue # 查看操作系统版本 # cat /proc/cpuinfo # 查看CPU信息 # hostn ...
- OpenStack挂载ISO镜像解决
OpenStack挂载ISO镜像解决 Summary 本次在OpenStack平台上进行,基于kvm,挂载iso镜像到OpenStack虚拟机中. 1.针对linux: 上传所需要挂载的iso镜像(必 ...
- JQuery 动态加载 HTML 元素时绑定点击事件无效问题
问题描述 假设项目中有一个列表页面,如下: 当点击列表一行数据可以显示详情页面,而详情页面的数据是根据当前行的数据作为参数,通过 ajax 请求到后台返回的数据,再根据返回的结果动态生成 html 页 ...
- Gorm入门使用
Gorm GORM CRUD 数据库的增删改查 go get -u github.com/jinzhu/gorm go get -u github.com/jinzhu/gorm/dialects/m ...
- java面试一日一题:再谈垃圾回收器中的串行、并行、并发
问题:请讲下java中垃圾回收器的串行.并行.并发 分析:该问题主要考察在垃圾回收过程中垃圾回收线程和用户线程的关系 回答要点: 主要从以下几点去考虑, 1.串行.并行.并发的概念 2.如何考虑串行. ...