【HAOI2008】下落的圆盘
问题描述
有n个圆盘从天而降,后面落下的可以盖住前面的。求最后形成的封闭区域的周长。看下面这副图, 所有的红色线条的总长度即为所求.
输入格式
第一行为1个整数n,N<=1000
接下来n行每行3个实数,ri,xi,yi,表示下落时第i个圆盘的半径和圆心坐标.
输出格式
最后的周长,保留三位小数
样例输入 1
2
1 0 0
1 1 0
样例输出 1
10.472
样例输入 2
6
9.960 -10.180 19.140
4.370 -3.500 18.740
9.030 -8.060 -12.500
3.830 -14.160 -16.940
7.190 -5.860 8.260
7.270 8.900 17.720
样例输出 2
229.401
这道题比较好像,直接从前往后依次讨论每个圆对答案的贡献,就枚举一下在他后面的圆,然后算一下圆交,得到两个交点之间的弧度,然后把所有的这些弧度区间拿来做线段覆盖就好了,注意处理相离和内含。
代码:
1 |
|