#P4276. 封兽鵺的激光游戏
封兽鵺的激光游戏
题目背景
#盛大的宴会已经开始
题目描述
在你的帮助下,萃香终于在一天内送出了所有的请柬。
夜幕低垂,随着由河城荷取提供的烟花"嗖"的一声蹿上天际,这场盛大的宴会终于如期开始。
顷刻之间,偌大的会场就已经被大家的欢声笑语充满:萃香和勇仪把酒言欢,散发着醉醺醺的酒香;帕秋莉和爱丽丝拽着魔理沙的两只胳膊争论着先逛哪边;琪露诺和大妖精在地上写写画画钻研着数学难题......一切都显得和谐而美满。
可是,随着会场愈发热闹,宴会的举办者萃香总感觉还是少了些什么,转念一想,她方才发觉自己没有准备游戏活动。没有游戏的宴会又怎能叫做宴会?为了解决这个严重的问题,萃香放下了酒葫芦,找到了路边的封兽鵺请她帮忙。
这可愁死封兽鵺啦!只擅长搞事情和打马赛克的她苦思冥想,终于想出了一个好主意,于是她将自己的UFO翻出来一些,再找圣白莲借几束激光,而下面就是封兽鵺制定的游戏规则:
封兽鵺在平面上放置了一些实心的质量均匀的UFO(可视为凸多边形),由于她的能力有限,所以这些UFO最多只有五条边。现在你可以从一给定点向任意方向发射一束激光(x轴正方向为0°,y轴正方形为90°,保证发射角度为两位小数,即激光从0°开始旋转,每次旋转0.01°),激光碰到UFO的边界便会发生反射,且激光每反射一次能量便会增加w(初始能量为0),这里要注意的是,每当一条边被激光打中过一次后便会失去反射的能力变成一条可以直接透过的边,这时候你的激光可以直接穿进UFO的内部从内部进行反射。
如果你还没有理解,封兽鵺已经贴心的为你准备了下面这张图:
本来唯恐天下不乱的封兽鵺想让激光射出时能量最大,但是萃香担心会场被破坏而将"能量最大"改为"能量最接近一整数E"。同时为了保证游戏的难度,封兽鵺会在游戏开始前将每个UFO绕重心顺时针旋转k*90°。
现在,轮到了你参加这个游戏,如果你射出激光的角度与封兽鵺的答案相符,那么你就会获得两份奖励——100分和封兽鵺的写真集!
当然,拥有电脑的你当然不会一次一次去试,而是通过编程预先解决这个问题,然后真正实践的时候直接用最优解拔得头筹。
输入格式
第一行一个整数n,为UFO的数量。
之后n行每行一个整数m,随后有m个实数对x[i],y[i]表示按顺时针顺序给出的UFO的m个顶点。
之后n行每行一个整数k,表示将该UFO顺时针旋转k*90°。
第2n+2行两个整数w和E,分别为每次反射激光的能量增量及规定的接近量。
最后一行两个实数x0,y0表示激光的射出点。
输出格式
一个实数d,保留到两位小数,表示使激光出射能量最接近E的出射角度。(如果有多个解符合题意,请输出角度最小的那个)
2
4 0 0 0 4 4 4 4 0
3 8 0 12 4 12 0
0
0
1 2
5 5
300.97
提示
【样例解释】:
如图所示,当激光射出偏角为300.97度时恰好能反射两次,E1-2*w=2=E,符合题意
#你需要特别注意的一些事:
- 当一束激光碰到UFO顶点的时候不认为它们相撞
- 多边形不会重叠,初始激光射出点不会在UFO上或UFO内
- 不要在这里讲科学,所以激光可以射到UFO内部进行反射
【数据范围】:
奖励:
(没错就是zun绘写真集,如果你AC了此题就可以获得)