题意:给你个真分数,你需要将其化简为最少的若干特殊真分数之和,你要输出这个序列(序列按递增序)。如果有不同的方案,则分数个数相同的情况下使最大的分母最小。若还相同,则使次大的分母最大……以此类推。如:2/3=1/2+1/6,但不允许2/3=1/3+1/3,因为加数中有相同的。对于一个分数a/b,表示方法有很多种,但是哪种最好呢? 首先,加数少的比加数多的好,其次,加数个数相同的,最小的分数越大越好。
分析:简单的深搜或者是宽搜无法解决此问题,因为深度上,a/b=x1+x2+x3+……xn当中x的个数也就是n的值是无法确定的,无明显的上界。而宽度上,每一层都是无限大的,x的值的可能性有无数种。所以,仅仅简单搜索是无用的。
解决方案是,使用迭代加深搜索。