luogu#P5792. [CTSC2005] 孤独的牧羊女

[CTSC2005] 孤独的牧羊女

题目描述

在瑞典的达拉纳洲有一座高山。山上有一个小屋,里面住着一位牧羊女。每天清晨,隔壁的山头会传来一阵悠扬的长笛声,而牧羊女则会站在屋里用自己的歌声回应。

小屋的俯视图是一个有 nn 个顶点的简单多边形,每一面墙可以反射声音,但是由于不可避免的能量损失,最多只能反射 kk 次(k=0k=0 表示不能反射声音)。墙面非常光滑,因此声音的反射遵循反射角等于入射角,如图 11。墙角不能反射声音,而每面墙的其他部分——即使离墙角很近——都可以反射声音。

突然有一天,牧羊女问自己:在小屋的哪些地方能听到她的歌声?假设所有听众都在屋里靠墙而坐,那么歌声能到达的墙一共有多长? 图 22 的四幅示意图分别画出了初始情况和声音经过 001122 次反射后到达的区域。灰色部分表示能听到歌声的部分,黑点表示牧羊女的位置。本题所求即灰色部分在多边形边界上的总长度

输入格式

第一行包含 44 个整数 nkxyn,k,x,y 分别表示小屋的墙角数、最多反射的次数以及牧羊女的坐标(牧羊女所在位置保证在屋内且至少离墙 11 个单位)。以下 nn 行每行两个整数 x,yx, y,表示第 ii 个墙角的坐标。墙角按照顺时针或逆时针排列。

输出格式

输出文件仅包含一个实数 LL,表示能听到歌声的墙的总长度。保留两位小数。

5 0 100 135
20 200
200 100
300 125
40 10
100 100
469.86
8 1 25 15
0 0
0 20
30 20
30 0
20 0
20 10
10 10
10 0
106.67

提示

评分方法

选手输出和参考输出差的绝对值不大于 0.020.02 时该测试点满分,相差超过 0.020.02 但不超过 11 时该测试点得 50%50\% 的分数。在样例11中,答案为 469.84469.84469.88469.88 都能拿满分,468.86468.86470.86470.86 都能拿 50%50\% 的分数。

约定

3n503\leq n\leq 500k50\leq k\leq 5,所有坐标为绝对值不超过 10001000 的整数。

50%50\% 的数据满足 k1k≤1