本文主要是介绍uva 10012 How Big Is It?(下一个排序 + DFS),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
题目链接:10012 - How Big Is It?
题目大意:给出一些园,求一个可以将所有圆装下的箱子,输出箱子的长,圆摆放的要求是必须至少与另一个圆相接,并且所有圆必须接触地面。
解题思路:一开始吧这道题想的太简单了,直接用DFS将所有排列枚举出来,加上两圆距离的公式(2 * sqrt(a * b))求完事了,其实远远不够,本题还有一些情况特殊的情况,例如两个大圆相切后,中间可以放一个小圆,这样的话小圆的长度就将被忽略而不能计算进总长度。
考虑进上面提到的特殊情况以后,我的做法是将所有圆排序,然后用下一个序列的方法对所有能组成的序列进行检查,检查的时候要注意考虑大小大夹小圆等特殊情况。
#include <stdio.h>
#in
这篇关于uva 10012 How Big Is It?(下一个排序 + DFS)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!