题目传送门。
搜+剪枝(只有 \(5\) 个,一点也不多)。
剪枝:
1.去掉长度 \(>50\) 的木棍
2.按照木棍长度从大到小排序,因为这样可以让后面的木棍更“灵活”的排列。
3.如果当前这根木棍放置后返回失败,则选择下一个与它长度不同的木棍放置(预处理)。
4.只招木棍长度不大于未拼长度的木棍搜索,用二分找。
5.如果当前长棍剩余的未拼长度等于当前木棍的长度或原始长度,继续拼下去会失败,就直接回溯并改之前拼的木棍。(这里不)做解释,留给读者自行思考)
题目传送门。
搜+剪枝(只有 \(5\) 个,一点也不多)。
剪枝:
1.去掉长度 \(>50\) 的木棍
2.按照木棍长度从大到小排序,因为这样可以让后面的木棍更“灵活”的排列。
3.如果当前这根木棍放置后返回失败,则选择下一个与它长度不同的木棍放置(预处理)。
4.只招木棍长度不大于未拼长度的木棍搜索,用二分找。
5.如果当前长棍剩余的未拼长度等于当前木棍的长度或原始长度,继续拼下去会失败,就直接回溯并改之前拼的木棍。(这里不)做解释,留给读者自行思考)