#P16191. [COI 2018] Svjetlost 光

    ID: 29502 远端评测题 3000ms 1024MiB 尝试: 0 已通过: 0 难度: (无) 上传者: 标签>2018Special JudgeCOI(克罗地亚)

[COI 2018] Svjetlost 光

题目背景

3s,1024MB。

题目描述

在平面上,若我们有一个凸多边形 PP,并且在多边形外放置一个光源 TT,那么它会照亮多边形的一些边——如果 AABB 是多边形的两个相邻顶点,则边 ABAB 会被照亮,当且仅当三角形 TABTAB 的面积不为零,且该边不与多边形内部相交。多边形的亮度定义为被照亮边的长度之和,而多边形的最大亮度是指我们选择最优光源位置 TT 所能得到的最大亮度。点 TT 与多边形的距离可以任意,TT 的坐标不必为整数。

图 4:第二个测试用例中的多边形 P,P1,P2P,P_1,P_2P3P_3,最优亮度已标出。

给定一个凸多边形 PP,其顶点依次为 A1,A2,,AnA_1, A_2, \ldots, A_n。多边形会在 qq 步操作中发生变化——在第 jj 步,我们删除一个已有顶点,得到新多边形 PjP_j。更精确地说,多边形 PjP_j 的顶点是尚未删除的 PP 的顶点,并且它们的顺序与原多边形 PP 相同。可以看出,每个多边形 PjP_j 仍然是凸的。

请计算初始多边形 PP 及每个得到的多边形 P1,P2,,PqP_1, P_2, \ldots, P_q 的最大亮度。

输入格式

输入的第一行包含正整数 nn——初始多边形 PP 的顶点数。接下来的 nn 行,每行包含两个整数 xjx_jyj (109xj,yj109)y_j\ (-10^9\le x_j, y_j \le 10^9)——顶点 AjA_j 的坐标。随后一行包含整数 q (0qn3)q\ (0 \le q \le n - 3)——变化次数。接下来的 qq 行,每行包含整数 kj (1kjn)k_j\ (1 \le k_j \le n),表示第 jj 步删除顶点 AkjA_{k_j}。可以保证多边形 PP 的顶点按逆时针给出,不存在连续平行线,并且所有删除索引 kjk_j 两两不同。

输出格式

输出 q+1q + 1 行。第一行输出初始多边形 PP 的最大亮度,第 j (1jq)j\ (1 \le j \le q) 行输出第 jj 步变更后多边形 PjP_j 的最大亮度。允许输出结果与标准答案的绝对或相对误差不超过 10510^{−5}

4
0 0
10 0
10 10
0 10
1
2

20.000000
24.142136

6
2 2
4 0
6 0
8 2
8 4
2 4
3
1
4
3

10.828427
11.300563
10.944272
11.656854

提示

子任务

::cute-table{three} |编号 |分数 |限制条件 | |:-:|:--:|:--------:| |11|1212|n100n\le 100| |22|1414|n2000n\le 2000| |33|1414|n100000,q=0n\le 100\,000,q=0| |44|2929|n100000n\le 100\,000,对所有 j=1,,q1j = 1,\ldots, q − 1kj<kj+1k_j < k_{j+1}| |55|3131|n100000n\le 100\,000|

翻译来源:GPT 4.1 mini。