zoukankan      html  css  js  c++  java
  • 【背包问题】

    /*
    背包问题
    说明:
    假设有一个背包的负重最多可达八公斤,而希望在背包中装入负重的范围内可得之总价物品,假设是水果好了,水果的编号,单价与重量如下所
    示:
    0    李子    4kg    NT$4500
    1    苹果    5kg    NT$5700
    2    橘子    2kg    NT$2250
    3    草莓    1kg NT$1100
    4     甜瓜    6kg    NT$6700 
    
    解法:
    略
    
     
    */ 
    
    #include <stdio.h>
    #include <stdlib.h>
    
    #define LIMIT 8
    #define N 5
    #define MIN 1
    
    struct body
    {
        char name[20];
        int size;
        int price;
    };
    
    typedef struct body object;
    
    int main(void)
    {
        int item[LIMIT + 1] = {0};
        int value[LIMIT + 1] = {0};
        int newvalue, i, s, p;
        
        object a[] = {{"李子", 4, 4500},
                        {"苹果", 5, 5700},
                        {"橘子", 2, 2250},
                        {"草莓", 1, 1100},
                        {"甜瓜", 6, 6700}
                        };
                        
        for(i = 0; i < N; i++)
        {
            for(s = a[i].size; s <= LIMIT; s++)
            {
                p = s - a[i].size;
                newvalue = value[p] + a[i].price;
                if(newvalue > value[s])
                {
                    value[s] = newvalue;
                    item[s] = i;
                }
            }
        }
        
        printf("物品	价格
    ");
        for(i = LIMIT; i >= MIN; i = i- a[item[i]].size)
        {
            printf("%s	%d
    ", a[item[i]].name, a[item[i]].price);
        }
        printf("合计	%d
    ", value[LIMIT]);
        
        return 0; 
    }

    运行结果:

  • 相关阅读:
    asp.net+Sqlserver 通过存储过程读取数据
    文字半透明显示在图片上
    饼形统计图
    折线统计图
    柱状统计图
    关于phonegap
    codesmith的使用
    asp.net读取Access数据库。
    Tomcat7.0安装配置
    freemarker数字格式化
  • 原文地址:https://www.cnblogs.com/libra-yong/p/6296356.html
Copyright © 2011-2022 走看看