QOJ.ac

QOJ

Límite de tiempo: 3 s Límite de memoria: 128 MB Puntuación total: 100

#6850. 神奇的宇宙飞船

Estadísticas

这一天,Sonetto 购买了她的第一艘飞船(可以看作一个凸多边形),并迫不及待地开始操作它。这艘飞船有一个触摸屏界面,用户可以在上面点击一个位置,飞船就会瞬间传送到该位置。然而,由于 Sonetto 买的是一艘走私飞船,在她点击某个位置后,系统会随机选择以点击位置为圆心、半径为 $R$ 的圆内的一个点,飞船会传送到该点。这一天,附近停着一艘 Mr.Cookie 的飞船,它也可以看作一个凸多边形。现在,给定 Sonetto 在屏幕上点击的位置,请你计算 Sonetto 的飞船与停在区域内的 Mr.Cookie 的飞船发生碰撞的概率。

由于 Sonetto 所处的空间是一个相当神秘的空间,Sonetto 的飞船最初可能与 Mr.Cookie 的飞船相交。然而,我们不需要关心 Sonetto 的初始位置。我们只需要关注她瞬间传送后,飞船的位置是否会与 Mr.Cookie 的飞船发生碰撞。

更具体地说,给定两个凸多边形 $A$ 和 $B$,以及一个圆 $P$(圆心为点 $X$,半径为 $R$)。你需要确定在圆 $P$ 内随机选择一点 $S$ 的概率,使得当凸多边形 $A$ 沿着向量 $\vec{OS}$($O$ 为原点 $(0,0)$)移动时,它变换为一个新的凸多边形 $A'$,且 $A'$ 与 $B$ 相交(相交意味着存在一点 $w$ 使得 $w \in A'$ 且 $w \in B$)。

输入格式

输入包含多个测试用例。第一行包含一个整数 $t(1 \le t \le 1200)$,表示测试用例的数量。接下来是各测试用例的描述。

第二行包含一个整数 $n(3 \le n \le 30000)$,表示凸多边形 $A$ 的顶点数。

接下来 $n$ 行,每行包含两个整数 $x_i, y_i(-10^8 \le x_i, y_i \le 10^8)$,表示凸多边形 $A$ 的第 $i$ 个点。点按逆时针顺序给出。

下一行包含一个整数 $m(3 \le m \le 30000)$,表示凸多边形 $B$ 的顶点数。

接下来 $m$ 行,每行包含两个整数 $x_i, y_i(-10^8 \le x_i, y_i \le 10^8)$,表示凸多边形 $B$ 的第 $i$ 个点。点按逆时针顺序给出。

最后一行包含三个整数 $x, y$ 和 $r$,表示圆 $P$ 的圆心位置和半径。$(-10^8 \le x, y \le 10^8, 1 \le r \le 10^8)$。

数据保证 $n$ 的总和不超过 $2 \cdot 10^5$。 数据保证 $m$ 的总和不超过 $2 \cdot 10^5$。

输出格式

对于每个测试用例,输出一个浮点数,表示 $A'$ 与 $B$ 相交的概率(保留 4 位小数)。

样例

输入 1

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

输出 1

0.5247
0.1185

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.