美文网首页
PROB: inflate 最简的多重背包问题

PROB: inflate 最简的多重背包问题

作者: SylviaShen | 来源:发表于2017-09-28 22:55 被阅读0次

可以套模板的多重背包问题

因为背包容量和物品种类数都最大10000,暴力dp 需要一亿次,本来以为可能超一秒了。结果...可能是每次做的事情都太傻瓜了吧。

Compiling...
Compile: OK

Executing...
   Test 1: TEST OK [0.000 secs, 4176 KB]
   Test 2: TEST OK [0.000 secs, 4176 KB]
   Test 3: TEST OK [0.000 secs, 4176 KB]
   Test 4: TEST OK [0.000 secs, 4176 KB]
   Test 5: TEST OK [0.000 secs, 4176 KB]
   Test 6: TEST OK [0.000 secs, 4176 KB]
   Test 7: TEST OK [0.014 secs, 4176 KB]
   Test 8: TEST OK [0.056 secs, 4176 KB]
   Test 9: TEST OK [0.084 secs, 4176 KB]
   Test 10: TEST OK [0.098 secs, 4176 KB]
   Test 11: TEST OK [0.000 secs, 4176 KB]
   Test 12: TEST OK [0.000 secs, 4176 KB]

All tests OK.
/*
ID: ufoshen1
LANG: C++
TASK: inflate
*/

#include <cstdio>
#include <cstdlib>
#define max(a,b) ((a) > (b)? (a): (b))

int main(){
    FILE *fin = fopen("inflate.in", "r");
    FILE *fout = fopen("inflate.out", "w");

    const int maxM = 10000, maxN = 10000; //最大时间 最大种类数
    int dp[maxM + 1], M, N;
    int score[maxN], time[maxN];

    // 读入
    fscanf(fin, "%d %d", &M, &N);
    for(int i = 0; i < N; i ++){
        fscanf(fin, "%d %d", score + i, time + i);
    }

    // 初始化
    for(int i = 0; i <= M; i ++){
        dp[i] = 0;
    }

    // 多重背包问题的 dp
    for(int i = 0; i < N; i ++){
        for(int j = time[i]; j <= M; j ++){
            dp[j] = max(dp[j], dp[j - time[i]] + score[i]);
        }
    }

    fprintf(fout, "%d\n", dp[M]);
    return 0;    
}

代码我都不好意思放了……回去看了下之前写的背包问题,就直接过了……

相关文章

  • PROB: inflate 最简的多重背包问题

    可以套模板的多重背包问题 因为背包容量和物品种类数都最大10000,暴力dp 需要一亿次,本来以为可能超一秒了。结...

  • 一刷到底。。

    归并快排堆排序模拟堆01背包完全背包问题多重背包问题多重背包问题2链表排序多链表合并字符串哈希字典树单调栈单调队列...

  • 多重背包问题

  • 多重背包问题

    多重背包问题(限制其物品的个数,介于无限和唯一之间) 一种方法是压入k个物品i,转变成01背包问题,但是还可以简化...

  • 背包问题3(多重背包)

    上一篇讲的完全背包是指在所有物品件数无限多的情况下选择最值,现在引申出多重背包问题,即各物品个数w[ i ]均有限...

  • 背包

    多重背包多重背包模板

  • 算法-动态规划-背包问题

    背包问题是基础的动态规划问题,包含了0-1背包,完全背包,多重背包等。 0-1背包 存在容量为 的背包 , 件体...

  • 背包问题

    背包问题属于典型的动态规划问题。这里我们将详细介绍0-1背包,完全背包和多重背包问题 一、 0-1背包 有N件物品...

  • 背包系列问题之--多重背包问题

    题目描述 小偷深夜潜入一家珠宝店,店里有5类宝物,体积分别为W{1,3,2,4,5},对应的价值为V{200,10...

  • java算法巩固训练day01

    01背包 完全背包 多重背包 多重背包二进制优化算法

网友评论

      本文标题:PROB: inflate 最简的多重背包问题

      本文链接:https://www.haomeiwen.com/subject/akqbextx.html