Krydom: 暁の水平线に胜利を刻むのです

ソロモンの悪夢、見せてあげる!

@krydom2年前

03/23
20:21
半平面交

[bzoj 2618] Cqoi2006 凸多边形

00:00/00:00

♦♦♦♦♦♦   Description   ♦♦♦♦♦♦

 逆时针给出n个凸多边形的顶点坐标,求它们交的面积。例如n=2时,两个凸多边形如下图:
1(7)
则相交部分的面积为5.233。

♦♦♦♦♦♦   Input   ♦♦♦♦♦♦

第一行有一个整数n,表示凸多边形的个数,以下依次描述各个多边形。第i个多边形的第一行包含一个整数mi,表示多边形的边数,以下mi行每行两个整数,逆时针给出各个顶点的坐标。

♦♦♦♦♦♦   Output   ♦♦♦♦♦♦

输出文件仅包含一个实数,表示相交部分的面积,保留三位小数。

♦♦♦♦♦♦   Sample Input   ♦♦♦♦♦♦

2
6
-2 0
-1 -2
1 -2
2 0
1 2
-1 2
4
0 -3
1 -1
2 2
-1 0

♦♦♦♦♦♦   Sample Output   ♦♦♦♦♦♦

5.233

♦♦♦♦♦♦   Hint   ♦♦♦♦♦♦

100%的数据满足:2<=n<=10,3<=mi<=50,每维坐标为[-1000,1000]内的整数

♦♦♦♦♦♦   题解  ♦♦♦♦♦♦

把一个多边形看成很多个半平面,然后求半平面交之后求面积。

c++:

pascal:

 

[bzoj 2618] Cqoi2006 凸多边形