CF1846D Rudolph and Christmas Tree 题解
因为 \(n\) 个三角形有重叠部分,所以我们可以倒序处理每个三角形,并对其进行分类讨论:
-
若当前三角形编号为 \(n\),则直接将总面积加上 \(\dfrac{d \times h}{2}\)。
-
否则,再次分出两种情况:
- 若当前三角形的 \(y_i + h > y_{i+1}\)(即编号为 \(i,i+1\) 的三角形有重叠),则如下图所示:
红色部分为重叠部分,则有 \(nh=y_i+h-y_{i+1}\),根据 \(\dfrac{nh}{h}=\dfrac{nd}{d}\)(因为两个三角形互为相似三角形,所以底和高都是同比例放大的),可知 \(nd=d \times \dfrac{nh}{h}\)。
- 否则,直接将总面积加上 \(\dfrac{d \times h}{2}\)。
注意强制类型转换为 long double
,且输出时至少需要保留小数点后 \(6\) 位。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】