C++编程《第15课 剪枝》教学课件.pptxVIP

  • 1
  • 0
  • 约1.74千字
  • 约 19页
  • 2026-03-10 发布于广西
  • 举报

第15课;学习目标;知识讲授;搜索中的剪枝;可行性剪枝:是对继续搜索能否得出答案进行判断,如果不能直接回溯。

例如迷宫问题中,我们对maze[][]==0的点不进行搜索。

if(maze[x][y]==0)return;;最优性剪枝,又称为上下界剪枝。它记录当前得到的最优值,如果当前结点已经无法产生比当前最优解更优的解时,可以提前回溯。

例如:求走出迷宫的最小步数,如果这次搜索步数已经超过之前记录的最小值,则直接剪枝回溯。

if(stepMax)return;;课堂练习;课堂练习1;#includebits/stdc++.h

usingnamespacestd;

intans[20],n,m,x;

voiddfs(inta,intb){

if(a==0b==m+1){

for(inti=1;i=m;i++)

coutans[i];

coutendl;

return;

}

if(a0||a0bm)return;

for(inti=1;i=x;i++){

ans[b]=i;

dfs(a-i,b+1);

ans[b]=0;

}

};课堂练习2;#includebits/st

文档评论(0)

1亿VIP精品文档

相关文档