• POJ 2393(Yogurt factory)


    题目链接:http://poj.org/problem?id=2393

    题意:有一个奶酪工厂,给出这个工厂每天加工每个奶酪需要的价格,以及每天的需求量,另外,奶酪也可以存放在仓库里(竟然放不坏!),给出每个奶酪存放一天需要的价格,问,这些生产任务全部完成,最少的花费是多少

    思路:贪心求最小值,一开始想到是要算当天的最小成本就将当天的成本与之前所有天数的成本加上对应的储存经费中取最小值,但是这时复杂度为O(n^2),当然是TLE!

       其实只需要比较今天的值和昨天的值即可,因为每天都是取的 “最值”。

       还有一个细节:用64位的整数,WA 了无数次,又仔细看了一下题目中的数值,改 ll 果断提交,A掉!

    ac代码:

    #include <iostream>
    #include <algorithm>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    ll N,S;
    
    struct Milk{
        ll c;
        ll y;
    }milk[10005];
    
    void solve(){
        ll ans=milk[0].c*milk[0].y;    
        ll temp=milk[0].c;
        for(ll i=1;i<N;i++){
            // ll temp=milk[i].c;
            // for(ll j=0;j<i;j++)
            //     temp=min(temp,milk[j].c+S*(i-j));
            temp=min(temp+S,milk[i].c);
            ans+=temp*milk[i].y;
        }
        cout<<ans<<endl;
    }
    
    int main(void){    
        cin>>N>>S;
        for(ll i=0;i<N;i++){
            cin>>milk[i].c>>milk[i].y;
        }
        solve();
        return 0;
    }
    View Code
  • 相关阅读:
    caffe学习
    阅读文献的三大问题:坐不住,记不住,想不开
    第五章 MySQL函数
    第四章 MySQL数据类型和运算符
    第三章 数据表的基本操作
    第二章 数据库的基本操作
    EXCEL的导入导出
    JAVA 通过位运算进行简单的加密
    JAVA 从控制台接收输入的字符
    JAVA Web JS
  • 原文地址:https://www.cnblogs.com/jaszzz/p/12554807.html
Copyright © 2020-2023  润新知