#P16444. PM10308矿藏勘探

PM10308矿藏勘探

题目背景

地质勘探队长林澈和测绘工程师周宁正在评估一片可能蕴藏矿脉的区域。勘探区的边界和矿藏范围都可以近似为凸多边形,并且矿藏完全位于勘探区内部。

由于人手有限,队伍无法覆盖整片区域。周宁提出了一种抽样路线:先在勘探区边界上等概率随机选择一个出发点,再朝边界上距离该点最远的位置沿直线前进。如果最远位置不止一个,就从这些位置中等概率选择一个。

林澈想知道,采用这种方案时,行进路线与矿藏区域相交的概率是多少。

题目描述

给定两个凸多边形:

  • 外层凸多边形表示勘探区;
  • 内层凸多边形表示矿藏区域。

两个多边形的顶点均按逆时针顺序给出。矿藏多边形严格位于勘探区多边形内部,二者边界不相交。

勘探队执行以下过程:

  1. 在勘探区边界上,按照弧长均匀随机选择一个起点 SS
  2. 在勘探区边界上选择一个与 SS 距离最远的点 TT
  3. 若最远点有多个,则从这些点中等概率选择一个;
  4. 沿线段 STST 行进。

若线段 STST 与矿藏区域至少有一个公共点,则认为勘探成功。

请输出勘探成功的概率。

输入格式

第一行包含两个整数 N,MN,M,分别表示勘探区多边形和矿藏多边形的顶点数。

接下来 NN 行,每行包含两个整数 xi,yix_i,y_i,表示勘探区多边形的第 ii 个顶点。

接下来 MM 行,每行包含两个整数 ui,viu_i,v_i,表示矿藏多边形的第 ii 个顶点。

两个多边形的顶点均按逆时针顺序给出。

输出格式

输出一个实数,表示勘探成功的概率。

当输出值与标准答案的绝对误差或相对误差不超过 10910^{-9} 时,视为正确。

数据范围

  • 3N,M503\le N,M\le 50
  • 所有坐标均为 [1000,1000][-1000,1000] 内的整数;
  • 两个多边形均为凸多边形;
  • 每个多边形中任意三个相邻顶点不共线;
  • 矿藏多边形严格位于勘探区多边形内部;
  • 两个多边形的边界不相交。

样例 1

输入

4 4
0 0
4 0
4 4
0 4
1 1
2 1
2 2
1 2

输出

0.6666666666666666

说明

下图根据原题坐标重绘。蓝色边界区间上的出发点会成功,橙色区间上的出发点会失败。

样例 2

输入

4 4
0 0
4 0
4 4
0 4
1 1
3 1
3 3
1 3

输出

1.0

说明

无论从边界上的哪个位置出发,路线都会经过矿藏区域。

样例 3

输入

5 3
5 3
2 4
-1 2
0 0
4 0
3 3
3 2
4 1

输出

0.6112700209855423

样例 4

输入

8 5
200 520
-99 516
-405 407
-601 321
-708 104
-494 -97
-300 -221
-88 -101
-101 318
-201 396
-296 402
-400 305
-402 200

输出

0.49892756207100747

样例 5

输入

5 4
-3 -1
6 -10
10 -9
10 7
-2 3
3 -5
5 -7
6 -6
4 -4

输出

0.16641662251521538

样例 6

输入

3 3
-2 -2
4 -2
-2 8
-1 0
0 -1
0 0

输出

0.04518850219072291