张三的酸奶厂:C++用贪心算法解POJ2393_Yogurt factory问题
POJ2393 Yogurt factory
题目链接:
POJ2393 Yogurt factory
简单理解一下题目:
张三开了一家酸奶场,在接下来N周里每周要给客户提供一定数量的酸奶,每周可以生产无限量的酸奶,就是可以选择一次生产完也可以分期生产,然后每周生产的成本不一样,而且提前生产的酸奶可以拿去储存,储存单价是固定的,我们需要给张三提供一个方案使得在满足酸奶供应的情况下,成本最小。
简单分析:
这题是个典型的贪心算法题,我们从第一周开始生产酸奶,后面每一周采用循环,找出最省钱的方案,比如第二周单位酸奶成本是100,但是第一周是90,而储存的成本是5,那么90+5<100,所以应该选择第一周就把第二周的量生产了,然后储存起来,等到第二周再拿给客户。每一周的酸奶都只能在前面的周或者当前周生产,每个周都要考虑前面所有的周,比较一下哪个周的成本+储存单价*储存周数是最小的,就在成本最小的那一个周进行酸奶的生产。
AC代码:
#include<iostream>using namespace std;const int MAX_N = 100000;int N, S;
long long Sum_price = 0;struct node {int week, price, sum;
}Yogurt[MAX_N];void solve()
{Sum_price += Yogurt[0].price * Yogurt[0].sum;for (int i = 1; i < N; i++){int p = Yogurt[i].price;for (int j = 0; j < i; j++){if ((Yogurt[j].price + S * (i - j)) < Yogurt[i].price){p = Yogurt[j].price + S * (i - j);}}Sum_price += Yogurt[i].sum * p;}
}int main()
{cin >> N >> S;for (int i = 0; i < N; i++){cin >> Yogurt[i].price >> Yogurt[i].sum;}solve();cout << Sum_price << endl;return 0;
}/*
4 5
88 200
89 400
97 300
91 500
*/
做题心得:
这个题比较简单,一遍过了,已经好久没有一次过了,找回一点点信心也是好的哈哈哈哈哈哈哈哈哈哈哈
张三的酸奶厂:C++用贪心算法解POJ2393_Yogurt factory问题相关推荐
- 贪心算法解旅行家的预算问题
贪心算法解旅行家的预算问题 题目描述 一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时油箱是空的).给定两个城市之间的距离D1汽车油箱的容量C(以升为单位).每升汽油能行驶的距离D2 ...
- leetcode 贪心_利用贪心算法解LeetCode第1253题:重构2行二进制矩阵
题目描述 给你一个 2 行 n 列的二进制数组:矩阵是一个二进制矩阵,这意味着矩阵中的每个元素不是 0 就是 1.第 0 行的元素之和为 upper.第 1 行的元素之和为 lower.第 i 列(从 ...
- 算法——贪心算法解0-1背包问题
问题的描述 我们先根据一个贪心算法的经典应用实例,然后给出贪心算法的实现步骤与关键环节,最后给出C++代码求解0-1背包问题. 背包问题(Knapsack Problem):有NN件物品有一个承重(也 ...
- 用贪心算法解背包问题(装载问题)
题目描述 给定一个最大载重量为M的卡车和N种食品,有食盐,白糖,大米等.已知第 i 种食品的最多拥有Wi 公斤,其商品价值为Vi元/公斤,编程确定一个装货方案,使得装入卡车中的所有物品总价值最大. 题 ...
- 每日一题:贪心算法解救生艇问题
问题描述: 来源:LeetCode第881题 难度:中等 给定数组 people .people[i]表示第 i 个人的体重 ,船的数量不限,每艘船可以承载的最大重量为 limit. 每艘船最多可同时 ...
- 贪心算法解硬币找零问题
假如有一种货币,它有面值为1分.2分.5分和1角的硬币,最少需要多少个硬币来找出K分钱的零钱? 按照贪心算法的思想,需要不断地使用面值最大的硬币.如果要找零的值小于最大的硬币值,则尝试第二大的硬币,依 ...
- 贪心算法 背包问题 java_贪心算法解背包问题
背包问题:与0-1背包问题类似,所不同的是在选择物品i装入背包时,可以选择物品i的一部分,而不一定要全部装入背包,1 <= i <= n.这2类问题都具有最优子结构性质,极为相似,但背包问 ...
- 算法学习——贪心算法解渡河问题(C语言版)
题目一:有A组人,每组有N人,想用一艘船渡河,该船一次只能载两个人.每个人划船的速度不同,当两个人一组时船的速度由最慢的人决定.求一种方法能让所有人过河并且船的往返时间最短. 输入:第一行输入A:第二 ...
- 算法设计与分析第3章 贪心算法
第4章 贪心算法 贪心算法总是作出在当前看来最好的选择.也就是说贪心算法并不从整体最优考虑,它所作出的选择只是在某种意义上的局部最优选择. 贪心算法的基本要素 1.贪心选择性质 所谓贪心选择性质是指所 ...
最新文章
- 疑问:c++中的memset
- Oracle RMAN备份深入解析--联机备份
- python 3解释器_Python3解释器
- 元件又焊反了,电路板又在冒烟了!
- javascript 控制弹出窗口
- C++隐式类类型转换
- OD常用快捷键(对比SoftICE)
- 查找项目里面资源文件报空指针的解决办法
- OpenXR+Runtime:OpenXR SDK Source Code源码编译
- 【云计算】云计算六大优点简单说明
- android 网页存储,90%的人不懂将网页永久保存在手机里的方法
- Deep learning-based method coupled with small sample learning for solving partial differential equat
- ClickHouse 深度解析第二篇
- 7-9 用天平找小球
- 水刺无纺布滤芯详细说明
- matlab中:错误使用 handle.handle/set 对象无效或已删除
- Kendo ui 使用总结----Kendo UI 模板
- 新绝代双骄3终极全攻略5
- 苹果笔记本电脑无法检查更新解决方案
- busybox rootfs