0 1背包问题数据结构 背包问题

0 1背包问题  时间:2022-02-23  阅读:()

数据结构 背包问题

#include <stdio.h> #define N 6 int main(){ //从N个背包(每个背包中w[k])中选取总重为T的背包,共有多少种选法 ??????? int w[N]={1,8,3,4,5,2};?????? //6个背包 ??????? int T=10;????????????????????????????? //总重 ??????? int k=0;????????????????????? ??????? int i=0; ??????? int j=1; ??????? struct stacks{????????????????????? //栈 ??????????????? int s[N]; ??????????????? ; ??????? } the_stack; ???????//初始化栈 ?????? ?for(i=0;i<N;i++) the_stack.s[i]=0; ??????? the_=0; ??????? do{ ??????????????? while(T>0&&k<=N){ ??????????????????????? if(T>=w[k]){??????????????????????????????????????????????????? //符合条件的背包进栈 ??????????????????????????????? the_stack.s[the_++]=k; ??????????????????????????????? T-=w[k]; ??????????????????????? } ??????????????????????? k++;????????????????????????????????????????????????????????????????? //不符合则考察下一个背包 ??????????????? } ??????????????? if(T==0){??????????????????????????????????????????????????????????????? //找到一种方法,输出 ??????????????????????? printf("------------Answer%d------------ ",j); ??????????????????????? for(i=0;i<the_;i++){ ??????????????????????????????? printf("%d[%d] ",the_stack.s[i],w[the_stack.s[i]]); ??????????????????????? } ??????????????????????? j++; ??????????????????????? printf(" "); ??????????????? } ??????????????? k=the_stack.s[--the_];??????????? //找不到方法,则前一个入栈的背包出栈,继续考察下一个背包 ??????????????? the_stack.s[the_]=0; ??????????????? T+=w[k]; ??????????????? k++; ??????? }while(!(the_==0&&k==N));?????????? //当栈空且k==N时,所有可能的组合都考察完毕,推出循环 } 运行结果: ------------Answer1------------ 0[1] 2[3] 3[4] 5[2] ------------Answer2------------ 0[1] 3[4] 4[5] ------------Answer3------------ 1[8] 5[2] ------------Answer4------------ 2[3] 4[5] 5[2]

百驰云(19/月),高性能服务器,香港三网CN2 2核2G 10M 国内、香港、美国、日本、VPS、物理机、站群全站7.5折,无理由退换,IP免费换!

百驰云成立于2017年,是一家新国人IDC商家,且正规持证IDC/ISP/CDN,商家主要提供数据中心基础服务、互联网业务解决方案,及专属服务器租用、云服务器、云虚拟主机、专属服务器托管、带宽租用等产品和服务。百驰云提供源自大陆、香港、韩国和美国等地骨干级机房优质资源,包括BGP国际多线网络,CN2点对点直连带宽以及国际顶尖品牌硬件。专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端...

3C云1核1G 9.9元 4核4G 16元 美国Cera 2核4G 24元

3C云互联怎么样?3C云互联专注免备案香港美国日本韩国台湾云主机vps服务器,美国高防CN2GIA,香港CN2GIA,顶级线路优化,高端品质售后无忧!致力于对互联网云计算科技深入研发与运营的极客共同搭建而成,将云计算与网络核心技术转化为最稳定,安全,高速以及极具性价比的云服务器等产品提供给用户!专注为个人开发者用户,中小型,大型企业用户提供一站式核心网络云端服务部署,促使用户云端部署化简为零,轻松...

HaloCloud:日本软银vps100M/200M/500M带宽,,¥45.00元/月

halocloud怎么样?halocloud是一个于2019下半年建立的商家,主要提供日本软银VPS,广州移动VDS,株洲联通VDS,广州移动独立服务器,Halo邮局服务,Azure香港1000M带宽月抛机器等。日本软银vps,100M/200M/500M带宽,可看奈飞,香港azure1000M带宽,可以解锁奈飞等流媒体,有需要看奈飞的朋友可以入手!点击进入:halocloud官方网站地址日本vp...

0 1背包问题为你推荐
中国万维网中国互联网之都有哪些?implement_dynamic(VC++)DECLARE_DYNAMIC(CDrawToolDlg)这个是什么意思?prisma安卓版Prisma安卓版能不能用oledbdatareaderDataReader和IDataReader的区别?excel大写金额怎么用Excel将小写金额转换成人民币的大写金额动态图片格式动态图片是什么格式?shoujiao手机板aoblox怎么从英文变成中文微信网页版登陆首页微信网页版怎么用?微信网页版怎么登陆?gas是什么意思petrol和gas的区别网站客服代码请问怎么在网页里面加入在线客服系统的代码,代码要怎么获得?
免备案虚拟空间 重庆虚拟主机 已备案未注册域名 花生壳域名贝锐 火山主机 cpanel 优惠码 mediafire下载 天猫双十一秒杀 创宇云 架设服务器 腾讯云分析 谁的qq空间最好看 秒杀汇 服务器干什么用的 美国网站服务器 路由跟踪 百度云空间 cdn网站加速 腾讯数据库 更多