背包问题-堆栈-找出其中一组解(总体积为T,n件物品体积分别是w1,w2,...,w2n,找出若干件恰好装满背包)

问题描述:

总体积为T的背包,n件物品体积分别是w1,w2,...,wn,找出若干件恰好装满背包。找出满足条件的解。

例如,当T=10时,各件物品的体积时{1,8,4,3,5,2}时,可找到下列4组解:

(1,4,3,2),(8,2),(1,4,5),(3,5,2)。

提示:

(1)将物品顺序选取到背包中。假设选取了钱i件物品之后背包还没有装满,则继续选取第i+1件物品。

(2)若改件物品太大,不能装入,则弃之选取下一件,直至背包装满为止。

(3)但如果在剩余的物品中找不到合适的物品填满背包,则说明刚刚装入背包的那件物品不合适,应该将它取出来,继续从它的后面选取。

(4)如此重复,直到求的满足的条件的解,或者无解。


#include<stdio.h>

//结构体,里面有相应的物品的体积,和该物品所在数组的下标值
typedef struct
{	
	int index;//下标
	int data;//体积
}datatype;

int findway(int tatol,datatype weight[])
{
	int lensize=6,top=0;
	int i,j;
	
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值