zoukankan      html  css  js  c++  java
  • P2224 [HNOI2001]产品加工

    Jisoo

    这种背包是不是把一维扔进状态就都能做了啊

    (dp_{i,j})表示到了第i个任务的时候A机器工作了j时间,转移显然

    有点卡时间,注意常数优化

    #include<iostream>
    #include<cstdio>
    #include<algorithm>
    #include<cstring>
    using namespace std;
    int n;
    int p;
    int t[6005][4];
    int dp[2][300005];
    int sum;
    int main(){
    	scanf("%d",&n);
    	for(int i=1;i<=n;++i){
    		scanf("%d%d%d",&t[i][0],&t[i][1],&t[i][2]);
    		sum=sum+max(max(t[i][0],t[i][2]),t[i][1]);
    	}
    	memset(dp,0x3f,sizeof(dp));
    	dp[0][0]=0;
    	for(int i=1;i<=n;++i){
    		p^=1;
    		int pre=p^1;
    		memset(dp[p],0x3f,sizeof(dp[p]));
    		for(int j=0;j<=sum;++j){
    			if(t[i][0]!=0)
    			dp[p][j]=min(dp[pre][j]+t[i][0],dp[p][j]);
    			if(j>=t[i][2]&&t[i][2]!=0){
    				dp[p][j]=min(dp[p][j],dp[pre][j-t[i][2]]+t[i][2]);
    			}
    			if(j>=t[i][1]&&t[i][1]!=0){
    				dp[p][j]=min(dp[p][j],dp[pre][j-t[i][1]]);
    			}
    		}
    	}
    	int ans=999999999;
    	for(int i=0;i<=sum;++i){
    		ans=min(ans,max(dp[n&1][i],i));
    	}
    	cout<<ans;
    	return 0;
    }
    
  • 相关阅读:
    极大似然估计
    python模块的安装
    变异检测
    泰勒公式
    shell关于变量的操作
    Hadoop安装教程
    关于连接linux被拒
    靶向药
    层次聚类
    基因芯片原理
  • 原文地址:https://www.cnblogs.com/For-Miku/p/15270117.html
Copyright © 2011-2022 走看看