问题:要求尺子可以测量给定的长度,并且要求刻度尽量少,长度尽量短
思路:采用广度优先搜索,初始状态中的刻度集合中只包含0,扩展新的状态时,有两种方式 ,一种是在当前的集合刻度上加上没有重复的长度,要求加后的长度不能超过最大值。另外一种方式是用当前的集合刻度减去没有重复的长度。
使用深度优先搜索方法时,先计算出可行的状态集合。在可行的状态集合中作选择。因为要求长度尽量短,所以可行的状态集合中包含给定的长度+各长度之间的差。
具体代码参考:
https://github.com/wuli2496/OJ/tree/master/UVa/1377%20Ruler