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);
    }
    
  • 相关阅读:
    Notes of Daily Scrum Meeting(12.18)
    Notes of Daily Scrum Meeting(12.17)
    Notes of Daily Scrum Meeting(12.16)
    Notes of Daily Scrum Meeting(12.8)
    Notes of Daily Scrum Meeting(12.5)
    Notes of Daily Scrum Meeting(12.3)
    Notes of Daily Scrum Meeting(11.12)
    Linux中profile、bashrc、bash_profile之间的区别和联系
    Linux GCC编译
    mysql 5.7.16 远程连接
  • 原文地址:https://www.cnblogs.com/Cptraser/p/7595204.html
Copyright © 2011-2022 走看看