CF1846D Rudolph and Christmas Tree 题解

Posted on 2024-03-09 12:48  _XOFqwq  阅读(6)  评论(0编辑  收藏  举报

因为 \(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\) 位。

\(code\)