01背包和完全背包代码

来源:互联网 发布:jquery.form.js data 编辑:程序博客网 时间:2024/06/07 15:24

注意返回条件和返回值即可


#include <stdio.h>#define MAX_LENGTH 10000int wl[] = {2,4,3,1};int vl[] = {3,6,5,2};int length = 3;/*int way[MAX_LENGTH][MAX_LENGTH] = {};void get_way(){}*///01背包,每种最多选择一次int calc_pack01(int w,int i){//非法情况应优先处理if (w < 0)return -9999;if (i == -1 || w == 0 )return 0;int a,b,max;a = calc_pack01(w - wl[i],i-1) + vl[i];b = calc_pack01(w,i-1);max = a > b ? a : b;return max;}//完全背包,每种选择次数不限int calc_pack1(int w,int i){if (w < 0)return -9999;if (i == -1 || w == 0 )return 0;int a,b,max;a = calc_pack1(w - wl[i],i) + vl[i];b = calc_pack1(w,i-1);max = a > b ? a : b;return max;}int main(){int w;w = 8;printf("%d\n",calc_pack01(w,length));printf("%d\n",calc_pack1(w,length));    return 0;}


0 0
原创粉丝点击