![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
深搜的剪枝技巧
浅梦曾倾
java选手
展开
-
T1442 小木棍(信息学奥赛一本通)
【问题】乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50。现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它们的长度。给出每段小木棍的长度,编程帮他找出原始木棍的最小可能长度。【输入】第一行为一个单独的整数N表示砍过以后的小木棍的总数,其中N≤60,第二行为N个用空个隔开的正整数,表示N根小木棍的长度。【输出】仅一行,表示要求的原始木棍的最小可能长度。【源代码】#include<bits/stdc++.h>usi.原创 2020-06-28 18:51:06 · 807 阅读 · 3 评论 -
深搜的剪枝技巧
【概述】搜索算法的时间复杂度大多是指数级的,难以满足对程序运行时间的限制要求,为使降低时间复杂度,对深度优先搜索可以进行一种优化的基本方法——剪枝。搜索的进程可以看做是从树根出发,遍历一颗倒置树(搜索树)的过程,所谓剪枝,就是通过某些判断,避免一些不必要的遍历过程,形象的说,就是减去搜索树中的某些枝条。剪枝的原则:正确、准确、高效【优化技巧】1、优化搜索顺序 在不同的搜索问题中,搜索树的各个层次,各个分支之间的顺序原创 2020-06-27 19:38:48 · 216 阅读 · 0 评论 -
T1441生日蛋糕(信息学奥赛一本通)(深搜剪枝)
【问题】7月17日是Mr.W的生日,ACM-THU为此要制作一个体积为Nπ\piπ的M层生日蛋糕,每层都是一个圆柱体。设从下往上数第i(1 <= i <= M)层蛋糕是半径为RiR_iRi, 高度为HiH_iHi的圆柱。当i<M时,要求RiR_iRi > Ri+1R_{i+1}Ri+1且HiH_iHi > Hi+1H_{i+1}Hi+1。由于要在蛋糕上抹奶油,为尽可能节约经费,我们希望蛋糕外表面(最下一层的下底面除外)的面积Q最小。令Q= Sπ\piπ,请编.原创 2020-06-27 16:54:49 · 436 阅读 · 0 评论 -
T1440 数的划分(信息学奥赛一本通)
【问题】将整数n分成k份,且每份不能为空,任意两份不能相同(不考虑顺序)。例如:n=7,k=3,下面三种分法被认为是相同的:{1,1,5};{1,5,1};{5,1,1}问有多少种不同的分法。 输出一个整数,即不同的分法。【输入】两个整数n,k(6<n≤200,2≤k≤6),中间用单个空格隔开。【输出】一个整数,即不同的分法。【思路】可行性剪枝【源代码】#include<bits/stdc++.h>#define EPS 1e-9#define PI.原创 2020-06-27 15:28:31 · 264 阅读 · 0 评论