zoukankan      html  css  js  c++  java
  • 0-1背包问题蛮力法求解(c++版本)

    // 0.1背包求解.cpp : 定义控制台应用程序的入口点。
    //
    #include "stdafx.h"
    #include <iostream>  
    #define N 5  
    #define ST 10  
    using namespace std;
    int main() {
     //给定n个重量,价值为不同的个物品和容量为c的背包,求这些物品中一个最有的价值的子集  
     int a[N] = { 2, 1, 3, 4, 7 };
     int b[N] = { 2, 5, 4, 1, 2 };
     int sum1 = 0;//sum1表示最终的价值  
     for (int i = 0; i<N; i++)//这是对每次的  
     {
      int STS = 0;//金子的总个数  
      int QS = 0;//价值的总个数  
      for (int j = 0; j<N; j++)
      {
       if (STS + a[i]<ST)//如果金子每放完,则继续放  
       {
        cout << "金子个数:" << a[j] << "    ";
        cout << "对应的价值为:" << a[j] * b[j] << endl;
        STS += a[j];
        QS += a[j] * b[j];
       }//否则则不进行  
      }//直到这个循环结束后就出来求出总的价值  
      cout << "第" << i + 1 << "次的总价值为:" << QS << endl;
      cout << endl;
      if (QS>sum1)
      {
       sum1 = QS;
      }
     }
     cout << "蛮力法背包最大的价值为:" << sum1 << endl;
     return 0;
    }
     

    结语 
    > 如果你还需要了解更多技术文章信息,请继续关注白衣秀才的博客

    个人网站:http://penglei.top/
    Github:https://github.com/whitescholars
    微博:http://weibo.com/u/3034107691?refer_flag=1001030102_&is_all=1

  • 相关阅读:
    SQL
    第九章
    第三章 表单
    第二章 表格,列表,媒体元素
    HTML5基础
    Java第一本书总复习
    字符串
    人机猜拳
    类的无参方法
    类和对象
  • 原文地址:https://www.cnblogs.com/penglei-it/p/5220154.html
Copyright © 2011-2022 走看看