NKOJ-3514 挡光线<2017信息学夏令营第三场 E>

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

题解

首先观察图形

移动前
移动后

上面一张图是两个正方形进行遮挡的简单情况

当正方形从一图转到二图时
操作是

①先把小正方形右移
    那么此时小正方形的顶点一定是到射线外面的
②把正方形的组合图形向外调整,使正方形的顶点恰好在射线上

一定有

①图形与射线交点的连线边长了
②红色部分的面积一定会变(因为交点离原点更远了)
    红色部分的面积可以通过淡蓝色的分割线计算
③蓝色部分的面积一定变大了
    (因为我们现将小正方形右移了)

阴影部分的面积=红色的面积+蓝色的面积
所以,根据上述操作我们能够得到一个结论

与射线交点的连线越长,阴影部分面积越大

推广至题解

对于两个正方形如此,对于多个正方形上述结论也一定成立(自行证明)
而当所有正方形的对角线都在同一直线上时,与射线交点的连线也一定最长

所以这道题目的解法就是

①求出最长的连线(即所有对角线长度之和)
②求出交点坐标(数学方法)
③求出阴影部分的面积(这个就不难了吧)

没有代码…不想做…

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值