洛谷【生日蛋糕】
【题意】:
【思路】: 很显然,像这种题目肯定要用搜索。
但是,由于数据量加大,普通的搜索肯定会 T L E TLE TLE……
所以,我们考虑剪枝。
剪枝:
顾名思义,剪枝就是剪去我们“可爱”的搜索树上一些枝条,从而加速搜索的一种技巧。
既然是剪去搜索树中的枝条,那么我们就一定要保证剪去的枝条是无解的,否则……
————————————————————————————————————————————————————————————————————————
剪枝的三大原则:正确性、准确性、高效性
————————————————————————————————————————————————————————————————————————
剪枝分为两大类:可行性剪枝、最优性剪枝
可行性剪枝即将可行性的枝条剪去,只留下可能有解的枝条,只要你想得到,所有搜索都可以用。
最优性剪枝即将肯定不是最优的枝条剪去,只留下可能是最优解的枝条,一般用于求最优解的搜索。
———————————————————————————————————————————————————————————————————————
剪枝大概有以下几种:
1、优化搜索顺序
2、排除等效冗余
3、记忆化剪枝
4、上下界剪枝
5、……
———————————————————————————————————————————————————————————————————————
剪枝没有统一的公式,只能靠自己刷题积累
回到本题,这里不加证明的给出几个剪枝:
1. 1. 1.在搜索第 d e p dep dep层是,只在下面范围内倒序枚举半径 R R R和高度 H H H:
首先枚举 R ∈ [ d e p , m i n ( { n − v } , r [ d e p + 1 ] − 1 ) ] , R \in [dep,min(\{\sqrt{n-v}\},r[dep+1]-1)], R∈[dep,min({
n−v