zoukankan      html  css  js  c++  java
  • UVa 624 CD(01背包并打印)

    第一次做把选择的打印出来的背包题目,于是还是更新下,把代码贴出来。

    题目很简单,为了让打印更加顺利,选择从后往前选择物品。

    #include <cstdio>
    #include <cstdlib>
    #include <cstring>
    
    const int MAXN = 10010;
    
    int dp[MAXN];
    int time[25];
    bool f[25][MAXN];
    
    int main()
    {
        int w, n;
        while (scanf("%d", &w) != EOF)
        {
            scanf("%d", &n);
    
            memset(dp, 0, sizeof(dp));
            memset(f, false, sizeof(f));
    
            for (int i = 1; i <= n; ++i)
                scanf("%d", &time[i]);
    
            for (int i = n; i >= 1; --i)
                for (int v = w; v >= time[i]; --v)
                    if (dp[v] < dp[v-time[i]] + time[i])
                        dp[v] = dp[v-time[i]] + time[i], f[i][v] = true;
    
            for (int i = 1, j = w; i <= n; ++i)
                if (f[i][j])
                    printf("%d ", time[i]), j -= time[i];
    
            printf("sum:%d\n", dp[w]);
        }
        return 0;
    }
    -------------------------------------------------------

    kedebug

    Department of Computer Science and Engineering,

    Shanghai Jiao Tong University

    E-mail: kedebug0@gmail.com

    GitHub: http://github.com/kedebug

    -------------------------------------------------------

  • 相关阅读:
    scrapy 随机UserAgent
    Scrapy使用中间件捕获Spider抛出的异常
    10.16-arrarylist
    10.15_package_2
    10.14_package_1
    10.13_enum_2
    10.12-enum_1
    10.11-java的接口2
    10.10-3对象和类_动手动脑-java的接口
    10.9-java的封装
  • 原文地址:https://www.cnblogs.com/kedebug/p/2769179.html
Copyright © 2011-2022 走看看