首页 > 其他分享 >动态规划实现0-1背包客问题

动态规划实现0-1背包客问题

时间:2022-10-18 14:15:14浏览次数:43  
标签:背包客 int arr Elem MYNUM SqList 动态 规划

#include<iostream> using namespace std; //动态规划实现0-1背包客问题 #define C 40 #define MYNUM 10//第0个不算物品,实际有n-1个物品 int m[MYNUM][C];
typedef struct{     int w,v; }Elem; typedef struct{     Elem* arr;     int length; }SqList;
void findPath(SqList L,int n,int c){     if(m[n][c]!=m[n-1][c]){         cout<<"装载的第"<<n<<"个,值为:"<<L.arr[n].v<<endl;         c=c-L.arr[n].w;     }     if(n-1>0)findPath(L,n-1,c); }
void backpacker(SqList L){     for(int i=0;i<MYNUM;++i)for(int j=0;j<=C;++j)m[i][j]=0;     for(int i=1;i<MYNUM;++i)         for(int j=1;j<=C;++j)             if(j<L.arr[i].w)m[i][j]=m[i-1][j];                 else m[i][j]=max(m[i-1][j],m[i-1][j-L.arr[i].w]+L.arr[i].v);     cout<<"装载最多价值为:"<<m[MYNUM-1][C]<<endl;     findPath(L,MYNUM-1,C); }
int main(){     SqList L;     L.arr=new Elem[MYNUM];     int ev[MYNUM]={0,4,2,3,5,3,6,9,8,7},ew[MYNUM]={0,2,9,5,3,1,7,1,8,7};     for(int i=0;i<MYNUM;++i){         L.arr[i].v=ev[i];         L.arr[i].w=ew[i];     }     backpacker(L);     return 0; }

标签:背包客,int,arr,Elem,MYNUM,SqList,动态,规划
From: https://www.cnblogs.com/vusblog/p/16802354.html

相关文章

  • 学习日记(C++、动态规划)
    1、121买卖股票的最佳时机classSolution{public:intmaxProfit(vector<int>&prices){intn=(int)prices.size(),ans=0;for(inti=0;i<n;++i......
  • 动态获取屏幕尺寸
    android中获取屏幕的长于宽,参考了网上有很多代码,但结果与实际不符,如我的手机是i9000,屏幕大小是480*800px,得到的结果却为320*533结果很不靠谱,于是自己写了几行代码,亲测一下测......
  • 动态计算rem
    在根文件中添加<script>(function(w,d){functionsetSize(){varscreenWidth=d.documentElement.clientWidth;varcurrentFo......
  • 【C语言知识碎片】动态内存分配函数的使用
    1.为什么需要动态内存分配我们需要存储一些数据时可以创建一个变量或者数组来进行存储。intval=10;intarr[10]={0};数组在开辟好之后大小是不能变的,但是这种静态的内存在......
  • SpringBoot配置动态定时任务
    1.SpringBoot配置动态定时任务SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太......
  • 问答:如何规划CSS 中 的命名方式 如何看待 CSS 中 BEM 的命名方式?
    好多盆友很纠结css命名规则怎么弄,还没起步就被绊住了,那么今天蝈蝈就针对这个问题来讨论一下没什么技术含量,但却对效率开发至关重要的“问题”。下文是一些知乎大神的个......
  • delphi TcxGrid制作一个动态授权修改数据的功能
    需求明细:1.表格TV申购清单,默认OptionsData--Editing:true可写权限2.默认列属性[申购数量,单重,用途,需求日期]Options---Editing:true常规情况下,这几列......
  • vue3+vite 使用defineAsyncComponent动态异步引入组件出错时的解决办法
    constname='c1'constcurrentComponent=shallowRef()constcomponents=import.meta.glob("./a/*.vue");currentComponent.value=defineAsyncComponent(compon......
  • 【算法】袋鼠过河,动态规划问题(C++源码)
    【算法】袋鼠过河,动态规划问题(C++源码)​​一、问题描述​​​​二、输入描述​​​​三、输出描述​​​​四、输入样例​​​​五、输出样例​​​​六、步骤描述​​​​......
  • 【LeetCode】1480. 一维数组的动态和(C++)
    1480.一维数组的动态和(C++)​​1题目描述​​​​2示例描述​​​​2.1示例1​​​​2.2示例2​​​​2.3示例3​​​​3解题提示​​​​4源码详解(C++)​​1题目......