蓝桥杯算法入门(Python) 课件 6-3DFS剪枝.pptxVIP

  • 0
  • 0
  • 约1.26千字
  • 约 7页
  • 2026-08-24 发布于山东
  • 举报

蓝桥杯算法入门(Python) 课件 6-3DFS剪枝.pptx

罗勇军6.3DFS剪枝蓝桥杯算法入门

DFS剪枝2可行性剪枝:对当前状态进行检查,如果当前条件不合法就不再继续,直接返回。搜索顺序剪枝:搜索树有多个层次和分支,不同的搜索顺序产生不同的搜索树形态。最优性剪枝:在最优化问题的搜索过程中,如果当前花费的代价已超过前面搜索到的最优解,那么本次搜索已经没有继续进行下去的意义。排除等效冗余:如果搜索的不同分支,最后的结果一样,那么只需搜一个分支。记忆化搜索:在递归的过程中,有许多分支被反复计算,会大大降低算法的执行效率。

数的划分/problem/P10253问题描述:将整数n分成k份,且每份不能为空,任意两个方案不相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的。 {1,1,5};{1,5,1};{5,1,1}问有多少种不同的分法。

题解4DFS求解整数划分的思路,就是模拟划分的过程。由于题目不用考虑划分数的大小顺序,为了简化划分过程,让k份数从小到大进行。第一个数肯定是最小的数字1;第二个数大于等于第一个数,可选1、2、...,最大不能超过(n-1)/(k-1)。设第2个数是x。第三个数大于等于第二个数,可选x、x+1、...,最大不能超过(n-1-x)/(k-2)。这个最大值的限制就是可行性剪枝。继续以上划分过程,当划分了k个数,且它们的和为n时,就是一个合法的划分。

小木棍/pro

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档