zoukankan      html  css  js  c++  java
  • bzoj1222

    奇怪的dp

    思路清奇 dp[i][j]表示当前做完了i个任务,1机器花了j秒,2机器花费的最少时间,然后转移就行了。

    #include<bits/stdc++.h>
    using namespace std;
    const int N = 6005;
    struct data {
        int a, b, c;
    } a[N];
    int n, ans = 0x3f3f3f3f, pre;
    int dp[2][N * 5];
    int main()
    {
        scanf("%d", &n);
        for(int i = 1; i <= n; ++i) 
        {
            scanf("%d%d%d", &a[i].a, &a[i].b, &a[i].c);
            if(a[i].a == 0) a[i].a = 0x3f3f3f3f;
            if(a[i].b == 0) a[i].b = 0x3f3f3f3f;
            if(a[i].c == 0) a[i].c = 0x3f3f3f3f; 
        }
        for(int i = 1; i <= n; ++i)
        {
            pre ^= 1;
            memset(dp[pre], 0x3f3f, sizeof(dp[pre]));
            for(int j = 0; j <= 30000; ++j)
            {
                if(j >= a[i].a) dp[pre][j] = dp[pre ^ 1][j - a[i].a];
                dp[pre][j] = min(dp[pre][j], dp[pre ^ 1][j] + a[i].b);
                if(j >= a[i].c) dp[pre][j] = min(dp[pre][j], dp[pre ^ 1][j - a[i].c] + a[i].c);
            }
        }
        for(int i = 0; i <= 30000; ++i) ans = min(ans, max(i, dp[pre][i]));
        cout << ans;
        return 0;
    }
    View Code
  • 相关阅读:
    浅谈HTTP中Get与Post的区别
    js 执行完setTimeout再接着执行函数
    2017年书单
    js判断img是否存在
    md5
    GIF播放器
    java 集合(二)
    java 泛型
    抓包工具
    js计算地球两个经纬度之间的距离
  • 原文地址:https://www.cnblogs.com/19992147orz/p/7745129.html
Copyright © 2011-2022 走看看