uva 10012 How Big Is It?(下一个排序 + DFS)

该博客探讨了UVA 10012问题,涉及如何找到一个能够容纳所有给定圆的箱子的最长尺寸。解题方法包括对圆进行排序,使用深度优先搜索(DFS)策略检查所有可能的排列组合,同时考虑特殊场景,如大圆之间可夹小圆的情况,以确保正确计算箱子的长度。
摘要由CSDN通过智能技术生成

题目链接:10012 - How Big Is It?


题目大意:给出一些园,求一个可以将所有圆装下的箱子,输出箱子的长,圆摆放的要求是必须至少与另一个圆相接,并且所有圆必须接触地面。

解题思路:一开始吧这道题想的太简单了,直接用DFS将所有排列枚举出来,加上两圆距离的公式(2 * sqrt(a * b))求完事了,其实远远不够,本题还有一些情况特殊的情况,例如两个大圆相切后,中间可以放一个小圆,这样的话小圆的长度就将被忽略而不能计算进总长度。

考虑进上面提到的特殊情况以后,我的做法是将所有圆排序,然后用下一个序列的方法对所有能组成的序列进行检查,检查的时候要注意考虑大小大夹小圆等特殊情况。


#include <stdio.h>
#in
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值