1206. Stacking Cylinders & 1012. Stacking Cylinders

这篇博客探讨了在1206和1012两道编程题中关于堆叠圆柱体的问题,强调了输入数据可能的陷阱和处理圆形位置的困难。通过转换为三角形分析,博主提出了逐层计算的解决方案,并详细解释了如何计算相邻圆心的角度和坐标。文章包含关键代码示例,展示了如何避免错误并找到正确答案。
摘要由CSDN通过智能技术生成

TAG 简单几何计算

 

这两道题题目是一样的,不过输出格式有点不同,而且1206的Sample input故意设下陷阱:让人误以为输入数据有序。

我之前没有排序,wa了。(╬▔ ω▔)

 

圆形的位置不好处理,我们可以考虑圆心,变成三角形来分析。

题目说明只有相邻层会接触。所以问题变得比较简单,而且我们可以逐层计算上去,最终得到答案。

连接相邻的2个圆心和对应上方的圆心,显然AC=AB=2,再算 θ1 和 θ2 两个角便能得出答案。C 和 B 的坐标在递推时已求出,显然 θ1 和 θ2很容易算。当然,这里画的三角形是“左倾”的,还有“右倾”的情况,所以注意算 θ1 的时候,在求边时不要用绝对值,这样 θ1 可正可负,最后直接和 θ2 相加即可。

三角函数、细节的处理看1206的代码

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值