Live2d Test Env

HihoCoder1652 : 三角形面积和2([Offer收割]编程练习赛38)(几何)(不会几何,占位)

描述

如下图所示,在X轴上方一共有N个三角形。这些三角形的底边与X轴重合,底边上两个顶点的坐标分别是(Li, 0)和(Ri, 0),底边的对顶点坐标是(Xi, Yi)。其中Li ≤ Xi ≤ Ri 且 Li < Ri。

你能求出这些三角形覆盖的面积之和吗? (重叠部分只算一次)

输入

第一行包含一个整数N。(1 ≤= N ≤ 100)    

以下N行每行包含4个整数Li, Ri, Xi, Yi。(1 ≤ Li < Ri ≤ 100000 且 Xi ∈ [Li, Ri], 1 <= Yi ≤ 100000)

输出

覆盖的面积,保留2位小数。

样例输入

2  
1 4 3 3  
3 6 4 3

样例输出

8.25

想法:

在c程课上问同桌这道题(一个不搞ACM的同学,我也是试一试的态度,因为我晓得我的几何是最差的TT)。然而,他提供了很多方案(在不考虑是否方便用计算机程序实现的情况下),给跪了。其中我觉得好实现的是如下方案:

  •  首先,找出轮廓(下面的曲线),算出大多边形面积。
  • 找出轮廓里的黑色三级形(没有覆盖的地方),算出黑色三角形的面积。
  • 做差。
  •  具体的大多边形的面积又可以分解为小三角形来计算(我只会这个)。
  • 三角形之间的关系无非是不相交,相交,和包含。上面的思路都可以搞定。

 

 

我觉得这方法ok,具体的实现还得吃饱了再思考。

 

update:https://www.cnblogs.com/hua-dong/p/11494021.html

posted @ 2017-12-27 17:34  nimphy  阅读(243)  评论(0编辑  收藏  举报