bzoj1222: [HNOI2001]产品加工--DP

时间:2023-11-15 14:38:08

DP神题orz

dp[i]表示机器1工作i小时,机器2工作dp[i]小时

那么对于每个任务:

选1:dp[i]=dp[i-a];

选2:dp[i]=dp[i]+b;

选1+2:dp[i]=dp[i-c]+c;

 #include<stdio.h>
 #include<algorithm>
 #include<string.h>
 using namespace std;
 ];
 int main(){
     scanf("%d", &n);
     maxT=n*;
     ; i<=maxT; i++) dp[i]=;
     dp[]=;
     ; i<=n; i++){
         scanf("%d%d%d", &a, &b, &c);
         ; j--){
             ;
             ) dp[j]=min(dp[j], dp[j-a]);
             if (b) dp[j]=min(dp[j], t+b);
             ) dp[j]=min(dp[j], dp[j-c]+c);
         }
     }
     int ans=0x7fffffff;
     ; i<=maxT; i++)
         ans=min(ans,max(dp[i],i));
     printf("%d\n", ans);
     ;
 }