P3514挡光线(低年级专享)
时间限制 : 10000 MS 空间限制 : 65536 KB SPJ
问题描述
坐标原点处有一光源,向第一象限发射光,光线成发散状,边缘处用OA,OB两条射线来表示。现在给你n个正方形,请你用它们将光线全部挡住,正方形的位置可以任意调整,但正方形的边必须平行于坐标轴,如下图所示。现在要求挡住后阴影部分的面积要尽可能大,请求出这个最大面积。
输入格式
第一行,一个整数N,表示正方形的个数。
第二行,四个实数,Xa,Ya,Xb,Yb,(Xa,Ya)表示点A的坐标,(Xb,Yb)表示点B的坐标
第三行,N个空格间隔的实数,分别表示N个正方形的边长。
输出格式
一个实数,表示所求结果,保留3个小数位
样例输入
样例输入1
1
2.000 3.000 3.000 2.000
1.000
样例输入2
2
3.000 4.000 1.000 5.000
6.000 3.000
样例输入3
3
1.000 3.000 5.000 9.000
2.000 6.000 5.000
样例输出
样例输出1
2.000
样例输出2
132.136
样例输出3
756.167
提示
对于100%的数据,0<N<=10, 1<=所有实数<=20
本题有SPJ,只要你的答案与标准答案的精度差在0.005以内,都判定为正解。
来源 uva1643
题解
首先观察图形
上面一张图是两个正方形进行遮挡的简单情况
当正方形从一图转到二图时
操作是
①先把小正方形右移
那么此时小正方形的顶点一定是到射线外面的
②把正方形的组合图形向外调整,使正方形的顶点恰好在射线上
一定有
①图形与射线交点的连线边长了
②红色部分的面积一定会变(因为交点离原点更远了)
红色部分的面积可以通过淡蓝色的分割线计算
③蓝色部分的面积一定变大了
(因为我们现将小正方形右移了)
而阴影部分的面积=红色的面积+蓝色的面积
所以,根据上述操作我们能够得到一个结论
与射线交点的连线越长,阴影部分面积越大
推广至题解
对于两个正方形如此,对于多个正方形上述结论也一定成立(自行证明)
而当所有正方形的对角线都在同一直线上时,与射线交点的连线也一定最长
所以这道题目的解法就是
①求出最长的连线(即所有对角线长度之和)
②求出交点坐标(数学方法)
③求出阴影部分的面积(这个就不难了吧)