zoukankan      html  css  js  c++  java
  • ZOJ 3554 A Miser Boss

    dp。

    dp[i][j][k] :i表示前i个工件,j表示在A工作台上的耗时-B工作台上的耗时,k表示在A工作台上的耗时-C工作台上的耗时。

    dp[i][j+a[i]][k+a[i]]=min(dp[i-1][j][k]+a[i],dp[i][j+a[i]][k+a[i]]);
    dp[i][j-b[i]][k]=min(dp[i-1][j][k]+b[i],dp[i][j-b[i]][k]);
    dp[i][j][k-c[i]]=min(dp[i-1][j][k]+c[i],dp[i][j][k-c[i]]);
    #include<cstdio>
    #include<cstring>
    #include<algorithm>
    #include<iostream>
    #include<vector>
    using namespace std;
    
    const int INF=0x3f3f3f3f;
    
    int dp[45][250][250];
    int a[45],b[45],c[45];
    int n;
    
    int main()
    {
        while(scanf("%d",&n)==1) {
            memset(dp,0x3f,sizeof dp);
            dp[0][120][120]=0;
            for(int i=1;i<=n;++i)
                scanf("%d%d%d",a+i,b+i,c+i);
            for(int i=1;i<=n;++i) {
                for(int j=0;j<=240;++j) {
                    for(int k=0;k<=240;++k) {
                        if(dp[i-1][j][k]!=INF) {
                            dp[i][j+a[i]][k+a[i]]=min(dp[i-1][j][k]+a[i],dp[i][j+a[i]][k+a[i]]);
                            dp[i][j-b[i]][k]=min(dp[i-1][j][k]+b[i],dp[i][j-b[i]][k]);
                            dp[i][j][k-c[i]]=min(dp[i-1][j][k]+c[i],dp[i][j][k-c[i]]);
                        }
                    }
                }
            }
            if(dp[n][120][120]!=INF)
                printf("%d
    ",dp[n][120][120]/3);
            else puts("NO");
        }
    }
  • 相关阅读:
    吃货联盟项目
    字串符笔记
    带有参的方法
    js:自动亮起100盏灯
    JS字面量创建方式的优缺点
    为什么说对象字面量赋值比new Object()高效?
    javascript 字面量
    vue学习(一)、Vue.js简介
    Redis(二):c#连接Redis
    Redis(一):centos下安装。
  • 原文地址:https://www.cnblogs.com/morimiya/p/3624626.html
Copyright © 2011-2022 走看看