题目讲解
题目链接:P10483 小猫爬山 - 洛谷
思路讲解
算法原理
【解法】
搜索策略:依次处理每⼀只猫,对于每⼀只猫,我们都有两种处理⽅式:
•
要么把这只猫放在已经租好的缆⻋上;
•
要么重新租⼀个缆⻋,把这只猫放上去。
剪枝:
•
在搜索过程中,我们⽤全局变量记录已经搜索出来的最⼩缆⻋数量。如果当前搜索过程中,已经⽤
的缆⻋数量⼤于全局记录的最⼩缆⻋数量,那么这个分⽀⼀定不会得到最优解,剪掉。
•
优化枚举顺序⼀:从⼤到⼩安排每⼀只猫
◦
重量较⼤的猫能够快速把缆⻋填满,较快得到⼀个最⼩值;
◦
通过这个最⼩值,能够提前把分⽀较⼤的情况提前剪掉。
•
优化枚举策略⼆:先考虑把⼩猫放在已有的缆⻋上,然后考虑重新租⼀辆⻋
◦
因为如果反着来,我们会先把缆⻋较⼤的情况枚举出来,这样就起不到剪枝的作用了。