欢迎大家订阅我的专栏:算法题解:C++与Python实现!
本专栏旨在帮助大家从基础到进阶 ,逐步提升编程能力,助力信息学竞赛备战!
专栏特色
1.经典算法练习:根据信息学竞赛大纲,精心挑选经典算法题目,提供清晰的代码实现与详细指导,帮助您夯实算法基础。
2.系统化学习路径:按照算法类别和难度分级,从基础到进阶,循序渐进,帮助您全面提升编程能力与算法思维。
适合人群:
- 准备参加蓝桥杯、GESP、CSP-J、CSP-S等信息学竞赛的学生
- 希望系统学习C++/Python编程的初学者
- 想要提升算法与编程能力的编程爱好者
附上汇总贴:USACO历年白银组真题解析 | 汇总-CSDN博客
P1376 Yogurt factory 机器工厂
【题目来源】
洛谷:[P1376 USACO05MAR] Yogurt factory 机器工厂 - 洛谷
【题目描述】
小 T 开办了一家机器工厂,在N NN个星期内,原材料成本和劳动力价格不断起伏,第i ii周生产一台机器需要花费C i C_iCi元。若没把机器卖出去,每保养一台机器,每周需要花费S SS元,这个费用不会发生变化。
机器工厂接到订单,在第i ii周需要交付Y i Y_iYi台机器给委托人,第i ii周刚生产的机器,或者之前的存货,都可以进行交付。
请你计算出这n nn周时间内完成订单的最小代价。
【输入】
第一行输入两个整数N NN和S SS,接下来N NN行每行两个数C i C_iCi和Y i Y_iYi。
【输出】
输出一个整数,表示最少的代价。
【输入用例】
4 5 88 200 89 400 97 300 91 500【输出用例】
126900【解题思路】
【算法标签】
《洛谷 P1376 机器工厂》 #贪心# #USACO# #福建省历届夏令营# #2005#
【代码详解】
#include<bits/stdc++.h>usingnamespacestd;intn,s,c,y;longlongans;intmain(){cin>>n>>s;// 输入n和scin>>c>>y;// 输入第1周的c和yans=c*y;// 得到代价intminn=c;// 定义最小花费为c,后面循环更新for(inti=2;i<=n;i++){// 从第2周遍历至n周cin>>c>>y;// 输入这周的c和yminn=min(minn+s,c);// 在上周最小的花费基础上增加s元保养费、本周花费中选择最小值ans+=minn*y;// 用最小花费乘上本周机器数量,再进行累加,得到最小代价}cout<<ans<<endl;// 打印最小代价return0;}【运行结果】
4 5 88 200 89 400 97 300 91 500 126900