01背包问题c++实现(01背包问题)

不枉此生
精选回答

1、P01: 01背包问题题目有N件物品和一个容量为V的背包。

2、第i件物品的费用是c[i],价值是w[i]。

3、求解将哪些物品装入背包可使价值总和最大。

4、基本思路这是最基础的背包问题,特点是:每种物品仅有一件,可以选择放或不放。

5、用子问题定义状态:即f[i][v]表示前i件物品恰放入一个容量为v的背包可以获得的最大价值。

6、则其状态转移方程便是:f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]+w[i]}这个方程非常重要,基本上所有跟背包相关的问题的方程都是由它衍生出来的。

7、所以有必要将它详细解释一下:“将前i件物品放入容量为v的背包中”这个子问题,若只考虑第i件物品的策略(放或不放),那么就可以转化为一个只牵扯前i-1件物品的问题。

8、如果不放第i件物品,那么问题就转化为“前i-1件物品放入容量为v的背包中”,价值为f[i-1][v];如果放第i件物品,那么问题就转化为“前i-1件物品放入剩下的容量为v-c[i]的背包中”,此时能获得的最大价值就是f[i-1][v-c[i]]再加上通过放入第i件物品获得的价值w[i]。

9、优化空间复杂度以上方法的时间和空间复杂度均为O(N*V),其中时间复杂度基本已经不能再优化了,但空间复杂度却可以优化到O(V)。

10、先考虑上面讲的基本思路如何实现,肯定是有一个主循环i=1.N,每次算出来二维数组f[i][0.V]的所有值。

11、那么,如果只用一个数组f[0.V],能不能保证第i次循环结束后f[v]中表示的就是我们定义的状态f[i][v]呢?f[i][v]是由f[i-1][v]和f[i-1][v-c[i]]两个子问题递推而来,能否保证在推f[i][v]时(也即在第i次主循环中推f[v]时)能够得到f[i-1][v]和f[i-1][v-c[i]]的值呢?事实上,这要求在每次主循环中我们以v=V.0的顺序推f[v],这样才能保证推f[v]时f[v-c[i]]保存的是状态f[i-1][v-c[i]]的值。

12、伪代码如下:for i=1.N for v=V.0 f[v]=max{f[v],f[v-c[i]]+w[i]};其中的f[v]=max{f[v],f[v-c[i]]}一句恰就相当于我们的转移方程f[i][v]=max{f[i-1][v],f[i-1][v-c[i]]},因为现在的f[v-c[i]]就相当于原来的f[i-1][v-c[i]]。

13、如果将v的循环顺序从上面的逆序改成顺序的话,那么则成了f[i][v]由f[i][v-c[i]]推知,与本题意不符,但它却是另一个重要的背包问题P02最简捷的解决方案,故学习只用一维数组解01背包问题是十分必要的。

14、事实上,使用一维数组解01背包的程序在后面会被多次用到,所以这里抽象出一个处理一件01背包中的物品过程,以后的代码中直接调用不加说明。

15、过程ZeroOnePack,表示处理一件01背包中的物品,两个参数cost、weight分别表明这件物品的费用和价值。

16、procedure ZeroOnePack(cost,weight) for v=V.cost f[v]=max{f[v],f[v-cost]+weight}注意这个过程里的处理与前面给出的伪代码有所不同。

17、前面的示例程序写成v=V.0是为了在程序中体现每个状态都按照方程求解了,避免不必要的思维复杂度。

18、而这里既然已经抽象成看作黑箱的过程了,就可以加入优化。

19、费用为cost的物品不会影响状态f[0.cost-1],这是显然的。

20、有了这个过程以后,01背包问题的伪代码就可以这样写:for i=1.N ZeroOnePack(c[i],w[i]);初始化的细节问题我们看到的求最优解的背包问题题目中,事实上有两种不太相同的问法。

21、有的题目要求“恰好装满背包”时的最优解,有的题目则并没有要求必须把背包装满。

22、一种区别这两种问法的实现方法是在初始化的时候有所不同。

23、如果是第一种问法,要求恰好装满背包,那么在初始化时除了f[0]为0其它f[1.V]均设为-∞,这样就可以保证最终得到的f[N]是一种恰好装满背包的最优解。

24、如果并没有要求必须把背包装满,而是只希望价格尽量大,初始化时应该将f[0.V]全部设为0。

25、为什么呢?可以这样理解:初始化的f数组事实上就是在没有任何物品可以放入背包时的合法状态。

26、如果要求背包恰好装满,那么此时只有容量为0的背包可能被价值为0的nothing“恰好装满”,其它容量的背包均没有合法的解,属于未定义的状态,它们的值就都应该是-∞了。

27、如果背包并非必须被装满,那么任何容量的背包都有一个合法解“什么都不装”,这个解的价值为0,所以初始时状态的值也就全部为0了。

28、这个小技巧完全可以推广到其它类型的背包问题,后面也就不再对进行状态转移之前的初始化进行讲解。

29、小结01背包问题是最基本的背包问题,它包含了背包问题中设计状态、方程的最基本思想,另外,别的类型的背包问题往往也可以转换成01背包问题求解。

30、故一定要仔细体会上面基本思路的得出方法,状态转移方程的意义,以及最后怎样优化的空间复杂度。

大漠祥云 2023-12-13 15:14:26

相关推荐

世界上最神秘的符号 2020火爆昵称特殊符号

最厉害的所罗门符号所罗门符号是一种古老的符号,它由古希腊哲学家所罗门发明,它可以用来表示某事物的真实性或假实性。它由三个箭头组成,分别表示“真”、“假”和“不确定”。它可以用来表达某种逻辑关系,例如,如果A是真...
展开详情

彩金多少钱一克 16家曝光

1、截止2020年2月5日,彩金收一般在190元一克。2、其实彩金是商家的一种设计与不同颜色搭配与反光折射的效果而已,本质还是K金。彩金多少钱一克16家曝光3、在国内销售的彩金通常是18K金,但是售价比普通的1...
展开详情

青云门四大剑诀(诛仙十大功法)

小篇给大家谈谈青云门四大剑诀,以及诛仙十大功法应用的知识点,希望对你所遇到的问题有所帮助。1、青云门镇山奇术之一的“神剑御雷真诀”闻名天下,道法,仙剑,天雷便是青云一派的代表。2、小说《诛仙》是中青云门的四大剑...
展开详情

门里面一个三这个字怎么读? 门里面一个三叫什么字

1、是:闫字,读音为:yán部首:门部外笔画:3总笔画:6结构:半包围五笔86:UDD五笔98:UDD仓颉:LSMMM郑码:TLCD笔顺编号:425111四角号码:37101汉字首尾分解:门三汉字部件分解:门三...
展开详情

花中第一流指的是什么花 中国十大名花

小天给大家谈谈花中第一流指的是什么花,以及中国十大名花应用的知识点,希望对你所遇到的问题有所帮助。1、“自是花中第一流”中的花,指的是桂花。2、该词句是出自宋代诗人李清照的《鹧鸪天》。花中第一流指的是什么花中国...
展开详情

精选推荐更多>

霍尔系数计算公式

霍尔系数计算公式:η=G/nF。霍尔效应(Halleffect)是指当固体导体放置在一个磁场内,且有电流通过时,导体内的电荷载子受到洛伦兹力而偏向一边,继而产生电压(霍尔电压)的现象。电压所引致的电场力会平衡洛伦兹力。
科学上把单位时间里通过导体任一横截面的电量叫做电流强度,简称电流,电流符号为I,单位是安培(A),简称“安”(安德烈·玛丽·安培,1775年—1836年,法国物理学家、化学家,在电磁作用方面的研究成就卓著,对数学和物理也有贡献。电流的国际单位安培即以其姓氏命名)。

立冬喝茶的诗句

立冬喝茶的诗句:
1、《寒夜》宋代杜耒:
寒夜客来茶当酒,竹炉汤沸火初红。
寻常一样窗前月,才有梅花便不同。
2、《暮雪》清代大须:
日夕北风紧,寒林噤暮鸦。
是谁谈佛法,真个坠天花。
呵笔难临帖,敲床且煮茶。
禅关堪早闭,应少客停车。
3、《和翁灵舒冬日书事》宋代徐照:
石缝敲冰水,凌寒自煮茶。
梅迟思闰月,梅远误春花。
贫喜田新长,吟令鬓已华。
城中寻小屋,岁晚欲移家。
4、《晚起》唐代白居易
烂熳朝眠后,频伸晚起时。暖炉生火早,寒镜裹头迟。
融雪煎香茗,调酥煮乳糜。慵馋还自哂,快活亦谁知。
酒性温无毒,琴声淡不悲。荣公三乐外,仍弄小男儿。
5、《春日山中对雪有作》唐代杜荀鹤:
竹树无声或有声,霏霏漠漠散还凝。
岭梅谢后重妆蕊,岩水铺来却结冰。
牢系鹿儿防猎客,满添茶鼎候吟僧。
好将膏雨同功力,松径莓苔又一层。

希腊神话中,谁是最高神?

“宙斯”是古希腊神话中的众神之王。宙斯是古希腊神话中的第三代神王,统治世间万物至高无上的天神,奥林匹斯十二主神之首。是希腊神话中最伟大的神。罗马神话中对应宙斯的神祇是朱庇特(Jupiter或Jove)。
宙斯被称为“众神之王”或“奥林匹斯之王”,同时也是天空与雷电之神。当他心情好的时候,天上就阳光明媚、晴空万里。当他愤怒时,天空就会乌云密布、电闪雷鸣。
因为古希腊人及罗马人崇拜宙斯,因此在神话里将宙斯说成是自己的祖先,奥林匹斯的许多神祇和许多希腊英雄都是他和不同女子生下的子女。他以雷电为武器,维持着天地间的秩序,公牛和鹰是他的标志。他的两个兄弟波塞冬和哈迪斯分别掌管海洋和冥界。宙斯守护的星座是射手座。

辛弃疾名字的由来

辛弃疾名字的由来:辛弃疾的祖父辛赞希望他成为大将之才,很崇拜西汉的名将霍去病,所以就给他取名叫“弃疾”。辛弃疾从小就习武练剑,饱读诗书,也一直把霍去病当成了自己的偶像。

人物简介:

辛弃疾(1140年5月28日-1207年10月3日),原字坦夫,后改字幼安,中年后别号稼轩,山东东路济南府历城县(今山东省济南市历城区)人。南宋官员、将领、文学家,豪放派词人,有“词中之龙”之称。与苏轼合称“苏辛”,与李清照并称“济南二安”。

出生时山东已为金人所占,早年与党怀英齐名北方,号称“辛党”。青年时参与耿京起义,擒杀叛徒张安国,回归南宋,献《美芹十论》《九议》等,条陈战守之策。先后在江西、湖南、福建等地为守臣,平定荆南茶商赖文政起事,又力排众议,创制飞虎军,以稳定湖湘地区。由于他与当政的主和派政见不合,故而屡遭劾奏,数次起落,最终退隐山居。开禧北伐前后,宰臣韩侂胄接连起用辛弃疾知绍兴、镇江二府,并征他入朝任枢密都承旨等官,均遭辞免。开禧三年(1207年),辛弃疾抱憾病逝,享年六十八岁。宋恭帝时获赠少师,谥号“忠敏”。

辛弃疾一生以恢复为志,以功业自许,却命运多舛,壮志难酬。但他始终没有动摇恢复中原的信念,而是把满腔激情和对国家兴亡、民族命运的关切、忧虑,全部寄寓于词作之中。其词艺术风格多样,以豪放为主,风格沉雄豪迈又不乏细腻柔媚之处,题材广阔又善化用典故入词,抒写力图恢复国家统一的爱国热情,倾诉壮志难酬的悲愤,对当时执政者的屈辱求和颇多谴责,也有不少吟咏祖国河山的作品。现存词六百多首,有《稼轩长短句》等传世。

主要影响:

一、文学:

1、词:

辛词现存六百多首,是两宋存词最多的作家。其词多以国家、民族的现实问题为题材,抒发慷慨激昂的爱国之情。辛词以其内容上的爱国思想,艺术上有创新精神,在文学史上产生了巨大影响。与辛弃疾以词唱和的陈亮、刘过等,或稍后的刘克庄、刘辰翁等,都与他的创作倾向相近,形成了南宋中叶以后声势浩大的爱国词派。后世每当国家、民族危急之时,不少作家从辛词中汲取精神上的鼓舞力量。

2、诗:

辛弃疾的诗,据辛启泰所辑《稼轩集抄存》收诗111首。邓广铭辑校《辛稼轩诗文抄存》清除误收,增补遗漏,得诗124首。其后,孔凡礼的《辛稼轩诗词补辑》又新补诗19首。现存辛诗,共133首。辛诗从各个不同的侧面,反映了作者的生活和思想情感,可与其词相证,其中《送别湖南部曲》,自写政治遭遇,可与《鹧鸪天·壮岁旌旗拥万夫》对读;“有时思到难思处,拍碎栏干人不知”(《鹤鸣亭绝句》),感叹英雄失意,也与《水龙吟·登建康赏心亭》合拍,而“竹杖芒鞋看瀑回,暮年筋力倦崔嵬”《同杜叔高祝彦集观天保庵瀑布主人留饮两日且约牡丹之饮》),与《鹧鸪天·鹅湖归病起作》合拍。正是置闲期间所反复咏吟的歌词题材。“剩喜风情筋力在,尚能诗似鲍参军”(《和任师见寄之韵》),辛弃疾以鲍照自许。他的诗风格俊逸,在当时“江西”“江湖”两派之外,自有掉臂游行之致。而且,他的某些抗战诗,悲壮雄迈,也未必在其抗战词之下,但是,辛弃疾毕竟是以词之余作诗,其诗作成就,自然无法与词相比拟。

3、文:

除去诗词方面的成就之外,辛弃疾的文笔势磅礴,充满豪情,颇为值得称道。辛弃疾的文,据邓广铭所辑,计17篇其中除几篇启札和祭文外,多为奏硫。这类奏疏,在一定程度上揭示了当时所存在的尖锐的民族矛盾和阶级矛盾,较为深刻地反映了社会现实;并系统地陈述了辛弃疾对于抗金、恢复事业的见解及谋略,充分体现了他经纶天下的“英雄之オ”和“刚大之气”。辛弃疾曾明确宣称:“论天下之事者主乎气。”(《九议》其二)辛弃疾其文,犹如其人,世充满着虎虎生气。所谓“笔势浩落,智略辐湊,有权书衡论之风”(《后村先生大全集》卷九十八),正体现了辛文的特色。后人视他为南宋时期政论文的大手笔,只是为词名所掩,不为人熟知。

二、书法:

辛弃疾有《去国帖》,今藏故宫博物院。纸本,行书十行,为酬应类信札。末署“宣教郎新除秘阁修撰权江南西路提点刑狱公事辛弃疾札子”。中锋用笔,点画规矩,书写流畅自如,于圆润爽丽中不失挺拔方正之气象。

《去国帖》曾经过元人赵孟頫,明人黄琳、项元沛及清人永瑆等鉴藏,《书画鉴影》著录。

三、军事:

1、军事活动:

辛弃疾不仅是词中高手,同时还是一个不可多得的将帅之才,为将,可冲锋陷阵,有万军之中勇擒张安国之壮举;为帅,可指挥若定,有一月平定茶商军之功绩。

辛弃疾曾提出大规模跨海登陆作战,这种登陆作战是与陆地进攻相配合的。他的这一构想,富有军事创意,他自己说这与当年楚汉战争时韩信绕过中原、直取齐地,有异曲同工之效。

2、军事思想:

辛弃疾的军事理论主要体现在《美芹十论》中。《美芹十论》又名《御戎十论》,是辛弃疾的一篇军事政论文。该书从第一论以至于第十论,无一不是精辟之论,有着很高的研究价值。同时,这也是一部很好的军事论著,陈述抗金救国、收复失地、统一中国的大计。在辛弃疾向宋孝宗进献《美芹十论》后,后人将“美芹”作为忧国忧民、悲国家之颠覆的代名。《美芹十论》分为十个篇章,分别为《审势》《察情》《观衅》《自治》《守淮》《致勇》《防微》《久任》《详战》,详细构建了从精神到物质再到军队管理的治国策略,陈述任人用兵之道。最后一步步地向孝宗展现了南宋进攻金国的战略构想,系统地表现了辛弃疾高瞻远瞩的战略方针与远见卓识,足以体现其军事战略水平与军事谋略。

常见热点问答
热点搜索
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200
作文大全
1-20
21-40
41-60
61-80
81-100
101-120
121-140
141-160
161-180
181-200