zoukankan      html  css  js  c++  java
  • 洛谷 P1376 机器工厂 题解

    P1376 机器工厂

    题目描述

    小T开办了一家机器工厂,在N(N<=10000)个星期内,原材料成本和劳动力价格不断起伏,第i周生产一台机器需要花费Ci(1<=Ci<=5000)元。若没把机器卖出去,每保养一台机器,每周需要花费S(1<=S<=100)元,这个费用不会发生变化。

    机器工厂接到订单,在第i周需要交付Yi(0<=Yi<=10^4)台机器给委托人,第i周刚生产的机器,或者之前的存货,都可以进行交付。

    请你计算出这n周时间内完成订单的最小代价。

    输入格式

    第一行输入两个整数N和S,接下来N行输入Ci和Yi

    输出格式

    输出一个整数,表示最少的代价

    输入输出样例

    输入 #1

    4 5
    88 200
    89 400
    97 300
    91 500

    输出 #1

    126900

    说明/提示

    时限1S,空间256MB

    【思路】

    贪心
    这个题很好想
    枚举到了第i月,如果前面有某一个月
    制造出机器的成本 + 到达第i天保养得花费
    是小于在第i个月直接造出来花费的成本的
    那就可以替换掉
    所以这就很显然了吗
    直接从第一个开始枚举
    记录目前建造机器需要花费的最小值
    不过这个最小值是每过一个月就需要加上s
    这个时候在和枚举到的那个月份需要造一台机子花费
    比较一下
    还是记录最小的

    通过上面
    我们可以求出每个月份的造价最低是多少
    这样就可以求出总共的最优解
    注意需要开long long 哦

    【完整代码】

    #include<iostream>
    #include<cstdio>
    
    using namespace std;
    int c,y;
    long long ans = 0;
    int main()
    {
    	int n,s;
    	cin >> n >> s;
    	int last;
    	for(int i = 1;i <= n;++ i)
    	{
    		cin >> c >> y;
    		if(i == 1)last = c;
    		else	last = min(last + s,c);
    		ans += last * y;
    	}
    	cout << ans << endl;
    	return 0;
    }
    
  • 相关阅读:
    iphone dev 入门实例5:Get the User Location & Address in iPhone App
    iphone dev 入门实例4:CoreData入门
    iphone dev 入门实例3:Delete a Row from UITableView
    iphone dev 入门实例2:Pass Data Between View Controllers using segue
    iphone dev 入门实例1:Use Storyboards to Build Table View
    Learning Core Data 1
    Apple dev travel
    数字信封工作原理
    Linux编程概念
    ubuntu16.04 安装 libnfc
  • 原文地址:https://www.cnblogs.com/acioi/p/11631449.html
Copyright © 2011-2022 走看看