ImageVerifierCode 换一换
格式:PPTX , 页数:27 ,大小:130.87KB ,
资源ID:4168988      下载积分:10 金币
快捷注册下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4168988.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

开通VIP折扣优惠下载文档

            查看会员权益                  [ 下载后找不到文档?]

填表反馈(24小时):  下载求助     关注领币    退款申请

开具发票请登录PC端进行申请

   平台协调中心        【在线客服】        免费申请共赢上传

权利声明

1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

注意事项

本文(深优先搜索与回溯算法.pptx)为本站上传会员【精****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4009-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

深优先搜索与回溯算法.pptx

1、深度优先搜索与回溯算法深度优先搜索与回溯算法 回溯是计算机解题中常用的算法,很多问题无法根据某种回溯是计算机解题中常用的算法,很多问题无法根据某种确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯确定的计算法则来求解,可以利用搜索与回溯的技术求解。回溯是搜索算法中的一种控制策略。它的基本思想是:为了求得问题是搜索算法中的一种控制策略。它的基本思想是:为了求得问题的解,先选择某一种可能情况向前探索,在探索过程中,一旦发的解,先选择某一种可能情况向前探索,在探索过程中,一旦发现原来的选择是错误的,就退回一步重新选择,继续向前探索,现原来的选择是错误的,就退回一步重新选择,继续向前探索,如此反

2、复进行,直至得到解或证明无解。如此反复进行,直至得到解或证明无解。如迷宫问题:进入迷宫后,先随意选择一个前进方向,一步如迷宫问题:进入迷宫后,先随意选择一个前进方向,一步步向前试探前进步向前试探前进,如果碰到死胡同,说明前进方向已无路可走,如果碰到死胡同,说明前进方向已无路可走,这时,首先看其它方向是否还有路可走,如果有路可走,则沿该这时,首先看其它方向是否还有路可走,如果有路可走,则沿该方向再向前试探;如果已无路可走,则返回一步,再看其它方向方向再向前试探;如果已无路可走,则返回一步,再看其它方向是否还有路可走;如果有路可走,则沿该方向再向前试探。按此是否还有路可走;如果有路可走,则沿该方向

3、再向前试探。按此原则不断搜索回溯再搜索,直到找到新的出路或从原路返回入口原则不断搜索回溯再搜索,直到找到新的出路或从原路返回入口处无解为止。处无解为止。回溯法算法框架回溯法算法框架Procedure dfs(s)/访问状态访问状态sBegin if 边界边界 then begin 判断是否为目标状态;判断是否为目标状态;exit;end;for i:=状态变换规则数状态变换规则数 beginsi=s+规则规则I保存局面保存局面dfs(si)还原局面还原局面 end;End;【例【例1】设有设有n个整数的集合个整数的集合1,2,n,从中取出任意,从中取出任意r个数个数(rn),试列出所有的可能的

4、情况。),试列出所有的可能的情况。例如例如1,2,3 ,r=2。那么有。那么有3种可能,种可能,(1,2),(),(1,3),(),(2,3)【例例2】任何一个大于任何一个大于1的自然数的自然数n,总可以拆分成若干个小于,总可以拆分成若干个小于n的自然数之和。的自然数之和。当当n=7共共14种拆分方法:种拆分方法:7=1+1+1+1+1+1+17=1+1+1+1+1+27=1+1+1+1+37=1+1+1+2+27=1+1+1+47=1+1+2+37=1+1+57=1+2+2+27=1+2+47=1+3+37=1+67=2+2+37=2+57=3+4total=14【例例3】素数环素数环:从从

5、1到到n(2,1-3,3-1,4-3,5-2,7-4,8【例例6】数的划分数的划分(NOIP2001)【问题描述问题描述】将整数n分成k份,且每份不能为空,任意两种分法不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。1,1,5;1,5,1;5,1,1;问有多少种不同的分法。【输入格式输入格式】n,k (6n200,2k6)【输出格式输出格式】一个整数,即不同的分法。【输入样例输入样例】7 3【输出样例输出样例】4 4种分法为:1,1,5;1,2,4;1,3,3;2,2,3 说明部分不必输出 【例【例7】跳马问题。跳马问题。在5*5格的棋盘上,有一只中国象棋的马,从(1

6、1)点出发,按日字跳马,它可以朝8个方向跳,但不允许出界或跳不允许出界或跳到已跳过的格子到已跳过的格子上,要求在跳遍整个棋盘。输出前5个方案及总方案数。输出格式示例:11621102520112415221721969127423143181385【课堂练习课堂练习】1、输出自然数1到n所有不重复的排列,即n的全排列。【参考过程参考过程】intSearch(inti)Intj;for(j=1;j=n;j+)if(bj)ai=j;bj=false;if(In)Search(i+1);elseprint();bj=true;2、找出n个自然数(1,2,3,n)中r个数的组合。例如,当n=,r=3

7、时,所有组合为:123124125134135145234235245345total=10/组合的总数【分析分析】:设在b1,b2,bi-1中已固定地取了某一组值且bi-1=k的前提下,过程Search(i,k)能够列出所有可能的组合。由于此时bi只能取k+1至n-r+i,对j=k+1,k+2,n-r+i,使bi:=j,再调用过程Search(i+1,j),形成递归调用。直至i的值大于r时,就可以在b中构成一种组合并输出。3、输出字母a、b、c、d,4个元素全排列的每一种排列。4、显示从前m个大写英文字母中取n个不同字母的所有种排列。5、有A、B、C、D、E五本书,要分给张、王、刘、赵、钱五

8、位同学,每人只能选一本,事先让每人把自已喜爱的书填于下表,编程找出让每人都满意的所有方案。【答案】四种方案张王刘赵钱CABDEDACBEDBCAEDECAB6、有红球4个,白球3个,黄球3个,将它们排成一排共有多少种排法?【分析分析】:可以用回溯法来生成所有的排法。用数组b1.3表示尚未排列的这3种颜色球的个数。设共有I-1个球已参加排列,用子程序Search(i)生成由第I个位置开始的以后n-I+1位置上的各种排列。对于第I个位置,我们对3种颜色的球逐一试探,看每种颜色是否还有未加入排序的球。若有,则选取一个放在第I个位置上,且将这种球所剩的个数减1,然后调用Search(I+1),直至形成

9、一种排列后出。对第I个位置上的所有颜色全部试探完后,则回溯至前一位置。【上机练习上机练习】1、全排列问题、全排列问题(Form.cpp)【问题描述】输出自然数1到n所有不重复的排列,即n的全排列,要求所产生的任一数字序列中不允许出现重复的数字。【输入格式】n(1n9)【输出格式】由1n组成的所有不重复的数字序列,每行一个序列。【输入样例】Form.in3【输出样例】Form.out1231322132313123212、组合的输出、组合的输出(Compages.cpp)【问题描述】【问题描述】排列与组合是常用的数学方法,其中组合就是从排列与组合是常用的数学方法,其中组合就是从n个元素中抽出个元

10、素中抽出r个元素个元素(不分顺序且不分顺序且rn),我们可以简单地将,我们可以简单地将n个元素理解为自然数个元素理解为自然数1,2,n,从中任取,从中任取r个数。个数。现要求你用递归的方法输出所有组合。现要求你用递归的方法输出所有组合。例如例如n5,r3,所有组合为:,所有组合为:l 2 3 l 2 4 1 2 5 l 3 4 l 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 5【输入】【输入】一行两个自然数一行两个自然数n、r(1n21,1rn)。【输出】【输出】所有的组合,每一个组合占一行且其中的元素按由小到大的顺序排列,每个元素占三所有的组合,每一个组合占一行且其中的元

11、素按由小到大的顺序排列,每个元素占三个字符的位置,所有的组合也按字典顺序。个字符的位置,所有的组合也按字典顺序。【样例】【样例】compages.in compages.out5 3 1 2 3 1 2 4 1 2 5 1 3 4 1 3 5 1 4 5 2 3 4 2 3 5 2 4 5 3 4 53、N皇后问题皇后问题(Queen.cpp)【问题描述】【问题描述】在N*N的棋盘上放置N个皇后(n=10)而彼此不受攻击(即在棋盘的任一行,任一列和任一对角线上不能放置2个皇后),编程求解所有的摆放方法。八皇后的两组解【输入格式输入格式】输入:n【输出格式输出格式】每行输出一种方案,每种方案顺序

12、输出皇后所在的列号,各个数之间有空格隔开。若无方案,则输出nosolute!【输入样例输入样例】Queen.in4【输出样例输出样例】Queen.out241331424、有重复元素的排列问题、有重复元素的排列问题【问题描述问题描述】设R=r1,r2,rn是要进行排列的n个元素。其中元素r1,r2,rn可能相同。试设计一个算法,列出R的所有不同排列。【编程任务编程任务】给定n以及待排列的n个元素。计算出这n个元素的所有不同排列。【输入格式输入格式】由perm.in输入数据。文件的第1行是元素个数n,1n500。接下来的1行是待排列的n个元素。【输出格式输出格式】计算出的n个元素的所有不同排列输

13、出到文件perm.out中。文件最后1行中的数是排列总数。【输入样例输入样例】4aacc【输出样例输出样例】多解多解aaccacacaccacaaccacaccaa65、子集和问题、子集和问题【问题描述问题描述】子集和问题的一个实例为S,t。其中,S=x1,x2,xn是一个正整数的集合,c是一个正整数。子集和问题判定是否存在S的一个子集S1,使得子集S1和等于c。【编程任务编程任务】对于给定的正整数的集合S=x1,x2,xn和正整数c,编程计算S的一个子集S1,使得子集S1和等于c。【输入格式输入格式】由文件subsum.in提供输入数据。文件第1行有2个正整数n和c,n表示S的个数,c是子集

14、和的目标值。接下来的1行中,有n个正整数,表示集合S中的元素。【输出格式输出格式】程序运行结束时,将子集和问题的解输出到文件subsum.out中。当问题无解时,输出“Nosolution!”。【输入样例输入样例】51022654【输出样例输出样例】2266、工作分配问题、工作分配问题【问题描述问题描述】设有n件工作分配给n个人。将工作i分配给第j个人所需的费用为cij。试设计一个算法,为每一个人都分配一件不同的工作,并使总费用达到最小。【编程任务编程任务】设计一个算法,对于给定的工作费用,计算最佳工作分配方案,使总费用达到最小。【输入格式输入格式】由文件job.in给出输入数据。第一行有1个

15、正整数n(1n20)。接下来的n行,每行n个数,第i行表示第i个人各项工作费用。【输出格式输出格式】将计算出的最小总费用输出到文件job.out。【输入样例输入样例】3425236345【输出样例输出样例】97、装载问题、装载问题【问题描述问题描述】有一批共n个集装箱要装上艘载重量为c的轮船,其中集装箱i的重量为wi。找出一种最优装载方案,将轮船尽可能装满,即在装载体积不受限制的情况下,将尽可能重的集装箱装上轮船。【输入格式输入格式】由文件load.in给出输入数据。第一行有2个正整数n和c。n是集装箱数,c是轮船的载重量。接下来的1行中有n个正整数,表示集装箱的重量。【输出格式输出格式】将计

16、算出的最大装载重量输出到文件load.out。【输入样例输入样例】51072654【输出样例输出样例】108 8、字符序列、字符序列(characts)(characts)【问题描述】【问题描述】从三个元素的集合A,B,C中选取元素生成一个N个字符组成的序列,使得没有两个相邻字的子序列(子序列长度=2)相同。例:N=5时ABCBA是合格的,而序列ABCBC与ABABC是不合格的,因为其中子序列BC,AB是相同的。对于由键盘输入的N(1=N=12),求出满足条件的N个字符的所有序列和其总数。【输入样例】【输入样例】4【输出样例】【输出样例】729 9、试卷批分、试卷批分(grade)(grade

17、)【问题描述问题描述】某学校进行了一次英语考试,共有10道是非题,每题为10分,解答用1表示“是”,用0表示“非”的方式。但老师批完卷后,发现漏批了一张试卷,而且标准答案也丢失了,手头只剩下了3张标有分数的试卷。试卷一:0 0 1 0 1 0 0 1 0 0 得分:70试卷二:0 1 1 1 0 1 0 1 1 1 得分:50试卷三:0 1 1 1 0 0 0 1 0 1 得分:30待批试卷:0 0 1 1 1 0 0 1 1 1 得分:?【问题求解问题求解】:请编一程序依据这三张试卷,算出漏批的那张试卷的分数。1010、迷宫问题、迷宫问题(migong)(migong)【问题描述问题描述】设

18、有一个N*N(2=N10)方格的迷宫,入口和出口分别在左上角和右上角。迷宫格子中分别放0和1,0表示可通,1表示不能,入口和出口处肯定是0。迷宫走的规则如下所示:即从某点开始,有八个方向可走,前进方格中数字为0时表示可通过,为1时表示不可通过,要另找路径。找出所有从入口(左上角)到出口(右上角)的路径(不能重复),输出路径总数,如果无法到达,则输出0。【输入样例输入样例】30 0 00 1 11 0 0【输出样例输出样例】2 /路径总数11、部落卫队、部落卫队【问题描述问题描述】原始部落byteland中的居民们为了争夺有限的资源,经常发生冲突。几乎每个居民都有他的仇敌。部落酋长为了组织一支保

19、卫部落的队伍,希望从部落的居民中选出最多的居民入伍,并保证队伍中任何2个人都不是仇敌。【编程任务编程任务】给定byteland部落中居民间的仇敌关系,编程计算组成部落卫队的最佳方案。【输入格式输入格式】第1行有2个正整数n和m,表示byteland部落中有n个居民,居民间有m个仇敌关系。居民编号为1,2,n。接下来的m行中,每行有2个正整数u和v,表示居民u与居民v是仇敌。【输出格式输出格式】第1行是部落卫队的顶人数;文件的第2行是卫队组成xi,1in,xi=0表示居民i不在卫队中,xi=1表示居民i在卫队中。【输入样例输入样例】71012142423252635364556【输出样例输出样例

20、3101000112、最佳调度问题最佳调度问题【问题描述问题描述】假设有n个任务由k个可并行工作的机器完成。完成任务i需要的时间为ti。试设计一个算法找出完成这n个任务的最佳调度,使得完成全部任务的时间最早。【编程任务编程任务】对任意给定的整数n和k,以及完成任务i需要的时间为ti,i=1n。编程计算完成这n个任务的最佳调度。【输入格式输入格式】由文件machine.in给出输入数据。第一行有2个正整数n和k。第2行的n个正整数是完成n个任务需要的时间。【输出格式输出格式】将计算出的完成全部任务的最早时间输出到文件machine.out。【输入样例输入样例】73214416653【输出样例输

21、出样例】1713、图的、图的m着色问题着色问题【问题描述问题描述】给定无向连通图G和m种不同的颜色。用这些颜色为图G的各顶点着色,每个顶点着一种颜色。如果有一种着色法使G中每条边的2个顶点着不同颜色,则称这个图是m可着色的。图的m着色问题是对于给定图G和m种颜色,找出所有不同的着色法。【编程任务编程任务】对于给定的无向连通图G和m种不同的颜色,编程计算图的所有不同的着色法。【输入格式输入格式】文件color.in输入数据。第1行有3个正整数n,k和m,表示给定的图G有n个顶点和k条边,m种颜色。顶点编号为1,2,n。接下来的k行中,每行有2个正整数u,v,表示图G的一条边(u,v)。【输出格式输出格式】程序运行结束时,将计算出的不同的着色方案数输出到文件color.out中。【输入样例输入样例】5841213142324253445【输出样例输出样例】48

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服