- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
程序中的递归过程图解如下: 回溯 可重复的全排列 假设是由1-3组成的3位数 program expl_dg; var a:array[1..10] of integer; procedure print; var i:integer; begin for i:=1 to 3 do write(a[i], ); writeln; end; procedure work(x:integer); var i:integer; begin if x3 then begin print ;exit;end; for i:=1 to 3 do begin a[x]:=i; work(x+1); end; end; begin work(1); end. 0,1背包问题 已知一个容量大小为M重量的背包和N种物品,每种物品的重量为Wi。若将物品放入背包将得到Pi的效益,求怎样选取物品将得到效益最大 算法分析 本题可以用递归求解:设当前有N个物品,容量为M;因为这些物品要么选,要么不选,我们假设选的第一个物品编号为I(1~I-1号物品不选),问题又可以转化为有N-I个物品(即第I+1~N号物品),容量为M-Wi的子问题……如此反复下去,然后在所有可行解中选一个效益最大的便可。 另外,为了优化程序,我们定义一个函数如下: F[I]表示选第I~N个物品能得到的总效益。不难推出: F[N]=Pn F[I]=F[I+1]+Pi (I=1…N-1) 假设当前已选到第I号物品,如果当前搜索的效益值+F[I+1]的值仍然比当前的最优值小,则没有必要继续搜索下去。 算法框架 procedure search(i:integer; j:byte); {递归求解} var k :byte; begin if now+f[j]=ans then exit; {如果没有必要搜索下去} if nowans then begin {修改最优解} ans:=now; out:=ou; end; for k:=j to n do {选取物品} if w[k]=i then begin now:=now+p[k]; ou[k]:=true; search(i-w[k],k+1); now:=now-p[k]; ou[k]:=false; end; end; 四皇后问题的递归实现 数字排列问题的递归实现 骑士游历问题的递归实现 回溯法的递归算法框架: 测试2、计算折分方案 测试8、01字符串问题 测试9.错排问题(02年初赛) 测试10.排队购票 测试11 、棋盘覆盖 测试12、组合的输出 某乡有n个村庄(1n40),有一个售货员,他要到各个村庄去售货,各村庄之间的路程s(0s1000)是已知的,且A村到B村与B村到A村的路大多不同。为了提高效率,他从商店出发到每个村庄一次,然后返回商店所在的村,假设商店所在的村庄为1,他不知道选择什么样的路线才能使所走的路程最短。请你帮他选择一条最短的路。 输入:村庄数n和各村之间的路程(均是整数)。 输出:最短的路程。 样例输入: 3 {村庄数} 0 2 l {村庄1到各村的路程} 1 0 2 {村庄2到各村的路程} 2 1 0 {村庄3到各村的路程} 样例输出: 3 测试1、售货员的难题 算法分析: 题目给定的村庄数不多(040),所以可以用回溯的方 法,从起点出发找出所有经过其他各村庄的回路,计算其中的最短路程。用一个过程road(step,line:byte)来描述走的状况,其中step是当前已到过的村庄数、line是当前所在的村庄。如果step=n,接下去只能回起点了,此时看第line个村庄到起点的路程加上已走的总路程,如果它比最小值还小则替换最小值。如果step还小于n,那么将还没有到过的村庄一个一个地试过去,再调用下一步road(step+1,新到的村庄号)。 var a:array[1..40,1..40] of integer; n,i,j:integer; min,m:longint; bj:array[1..40] of boolean; begin readln(n); for i:
您可能关注的文档
- 北师七下第二章2.2探索直线平行的条件3章节.ppt
- 北师七下第二章2.3平行线的识别1章节.ppt
- 北师七下第二章2.3平行线的识别2章节.ppt
- 北师七下第二章2.3平行线的特征.ppt
- 大学物理学19热力学第二定律.ppt
- 北师七下第二章2.3余角与补角1章节.ppt
- 大学物理学20振动-2章节.ppt
- 北师七下第二章2.3余角与补角2章节.ppt
- 大学物理学21波动-1章节.ppt
- 北师七下第二章2.4尺规作角北师大版.ppt
- 北师大版二年级数学上册课件长阳实验小学北师大第三册作息时间表课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册辨认方向课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册读统计图表课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册读统计图课件.ppt
- 工厂电气与PLC控制技术第5版张振国电子课件工厂电气与PLC控制技术51章节.ppt
- 北师大版二年级数学下册课件北师大版二年级下册回收废电池课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册角的初步认识课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册派车课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册平行四边形课件.ppt
- 北师大版二年级数学下册课件北师大版二年级下册生活中的大数练习五课件.ppt
最近下载
- 老友记台词剧本第一季第1集中英双语左右对照.pdf VIP
- 2025年5月18日河南省事业单位联考《公共基础知识》试题及答案解析.pdf
- 2018年最新发布的ISO50001-2018能源管理体系标准条款中英文版..pdf VIP
- 中欧班列“齐鲁号”跨境物流供应链金融模式研究.pdf VIP
- 运动心理学PPT完整全套教学课件.pptx VIP
- 七年级历史数字故事——隋朝大运河课件.ppt VIP
- 旅游职业礼仪-全套PPT课件.pptx
- 2025人教版数学三年级上册全册教学课件.ppt
- 居民健康档案知识培训课件.pptx VIP
- 2025年秋季人教版7年级上册数学全册教学课件(新教材).pptx
文档评论(0)