题目大意:给出一些园,求一个可以将所有圆装下的箱子,输出箱子的长,圆摆放的要求是必须至少与另一个圆相接,并且所有圆必须接触地面。
解题思路:一开始吧这道题想的太简单了,直接用DFS将所有排列枚举出来,加上两圆距离的公式(2 * sqrt(a * b))求完事了,其实远远不够,本题还有一些情况特殊的情况,例如两个大圆相切后,中间可以放一个小圆,这样的话小圆的长度就将被忽略而不能计算进总长度。
考虑进上面提到的特殊情况以后,我的做法是将所有圆排序,然后用下一个序列的方法对所有能组成的序列进行检查,检查的时候要注意考虑大小大夹小圆等特殊情况。
#include <stdio.h>
#in