zoukankan      html  css  js  c++  java
  • BZOJ1222_ 产品加工_KEY

    题目传送门

    我们设f[i]表示用机器A加工,时间还剩下i时的最优加工时间。

    对于每一个时间可以加工的物品,有以下几个选择:

    1、用机器A加工

    2、用机器B加工

    3、A和B一起加工

    所以得到方程:

    f[j]+=a[i][2]//用机器B加工,所以时间还剩j。

    f[j]=min(f[j],f[j-a[i][1])(j>=a[i][1])//用机器A加工,所以由j-a[i][1]转移来。

    f[j]=min(f[j],f[j-a[i][3]]+a[i][3])//用A、B一起加工,因为A也要出力,B也要出力,在减去a[i][3]的同时也要加上a[i][3]。

    code:

    /**************************************************************
        Problem: 1222
        User: yekehe
        Language: C++
        Result: Accepted
        Time:2084 ms
        Memory:1052 kb
    ****************************************************************/
     
    #include <cstdio>
    using namespace std;
    inline int read(){
        char c;while(c=getchar(),(c<'0'||c>'9')&&c!='-');int x=0,y=1;c=='-'?y=-1:x=c-'0';
        while(c=getchar(),c>='0'&&c<='9')x=x*10+c-'0';return x*y;
    }
    inline int min(int x,int y){return x<y?x:y;}
    inline int max(int x,int y){return x>y?x:y;}
    int n,a[6001][4],f[35001];
    int main(){
        n=read();
        int m=0;
            for(int i=1;i<=n;i++){
                a[i][1]=read();a[i][1]=a[i][1]==0?30005:a[i][1];
                a[i][2]=read();a[i][2]=a[i][2]==0?30005:a[i][2];
                a[i][3]=read();a[i][3]=a[i][3]==0?30005:a[i][3];
                m+=min(min(a[i][1],a[i][2]),a[i][3]);
            }
        f[0]=0;
            for(int i=1;i<=n;i++){
                for(int j=m;j>=0;j--){
                    f[j]+=a[i][2];
                    if(j>=a[i][1])f[j]=min(f[j],f[j-a[i][1]]);
                    if(j>=a[i][3])f[j]=min(f[j],f[j-a[i][3]]+a[i][3]);
                }
            }
        int ans=30005;
            for(int i=0;i<=m;i++)ans=min(ans,max(i,f[i]));
        printf("%d",ans);
    }
    
  • 相关阅读:
    推箱子(简易版)
    [LeetCode] Word Ladder II
    [LeetCode] Path Sum
    [LeetCode] Word Ladder
    DFS & BFS
    [LeetCode] Surrounded Regions
    [LeetCode] Add Binary
    [LeetCode] Plus One
    [LeetCode] Single Number II
    [LeetCode] Single Number
  • 原文地址:https://www.cnblogs.com/Cptraser/p/7595204.html
Copyright © 2011-2022 走看看