zoukankan      html  css  js  c++  java
  • UVa 624 CD

    这道题没有说明背包的最大容量,估计值取1500min(>=24h)。

    这道题没有要求字典序,打印一种结果即可;

    对保存中间结果的方法有点依赖了(浪费空间)。

     1 # include <stdio.h>
    2 # include <memory.h>
    3
    4 int v[21];
    5 int f[21][1500];
    6 int p[21][1500];
    7
    8 void print_list(int m, int c);
    9
    10 int main()
    11 {
    12 int c, m, i, j;
    13
    14 while (~scanf("%d%d", &c, &m))
    15 {
    16 memset(f, 0, sizeof(f));
    17 memset(p, 0, sizeof(p));
    18
    19 for (i = 1; i <= m; ++i)
    20 {
    21 scanf("%d", &v[i]);
    22 for (j = 0; j <= c; ++j)
    23 {
    24 f[i][j] = f[i-1][j];
    25 p[i][j] = 0;
    26 if (j >= v[i] && f[i][j] < f[i-1][j-v[i]]+v[i])
    27 {
    28 f[i][j] = f[i-1][j-v[i]]+v[i];
    29 p[i][j] = v[i];
    30 }
    31 }
    32 }
    33
    34 print_list(m, c);
    35 printf("sum:%d\n", f[m][c]);
    36 }
    37
    38 return 0;
    39 }
    40
    41 void print_list(int m, int c)
    42 {
    43 if (m == 0) return;
    44 if (m == 1 && p[m][c] > 0) {printf("%d ", p[m][c]); return;}
    45 if (p[m][c] > 0)
    46 {
    47 print_list(m-1, c-v[m]);
    48 printf("%d ", v[m]);
    49 }
    50 else print_list(m-1, c);
    51 }



  • 相关阅读:
    调试IPV6
    [super class]和[self class]
    Django2 + python3 上传图片
    django2 + python3 显示静态文件中的图片
    机器工厂——贪心
    Handstand 2——AT(先打表)
    Low Elements--AT
    Double Factorial——AT
    Brick Break——AT
    变音量——动态规划
  • 原文地址:https://www.cnblogs.com/JMDWQ/p/2430812.html
Copyright © 2011-2022 走看看