QOJ.ac

QOJ

Time Limit: 1.0 s Memory Limit: 1024 MB Total points: 100 Hackable ✓

#14946. 碰撞傷害

Statistics

在一款 2D 物理電子遊戲中,兩個角色 $P$ 和 $Q$ 在戰場上移動。每個角色都由一個凸多邊形表示,作為其碰撞箱。當兩個碰撞箱重疊時,遊戲會計算它們交集的面積作為碰撞傷害。

然而,由於競技場內難以預測的風流,角色 $Q$ 會被任意平移向量 $\mathbf{t} = (t_x, t_y)$ 位移,但不會旋轉或翻轉。你需要計算當 $Q$ 均勻隨機地放置且確實與 $P$ 發生碰撞(亦即它們的交集具有正面積)時,碰撞傷害的期望值。

更正式地說,定義 $f(\mathbf{t})$ 為代表角色 $P$ 的多邊形與代表角色 $Q$ 的多邊形沿著 $\mathbf{t}$ 平移後的交集面積。設 $D \subseteq \mathbb{R}^2$ 為所有滿足 $f(\mathbf{t}) > 0$ 的平移向量 $\mathbf{t}$ 所成的集合。可以證明 $D$ 具有正面積,記為 $|D|$。你需要計算 $\frac{1}{|D|} \iint_D f(\mathbf{t})\,d\mathbf{t}$。

輸入

輸入的第一行包含一個整數 $T$($1 \le T \le 300$),代表測試資料的組數。對於每組測試資料:

  • 第一行包含兩個整數 $n$ 和 $m$($3 \le n, m \le 1\,000$),分別代表兩個凸多邊形的頂點數量。
  • 接下來有 $n$ 行,每行包含兩個整數 $x$ 和 $y$($-10^4 \le x, y \le 10^4$),給出代表角色 $P$ 的多邊形的頂點座標 $(x, y)$。
  • 再接下來有 $m$ 行,每行包含兩個整數 $x$ 和 $y$($-10^4 \le x, y \le 10^4$),給出代表角色 $Q$ 的多邊形的頂點座標 $(x, y)$。
  • 保證凸多邊形的頂點按逆時針順序給出,且沒有任何三個頂點共線。

保證所有測試資料中 $n$ 的總和與 $m$ 的總和皆不超過 $1\,000$。

輸出

對於每組測試資料,輸出一行包含一個實數,代表碰撞傷害的期望值。

若你的答案的絕對誤差或相對誤差不超過 $10^{-6}$,則視為正確。正式地說,假設你的輸出為 $a$,裁判的答案為 $b$,當且僅當 $\frac{|a - b|}{\max(1, |b|)} \le 10^{-6}$ 時,你的輸出才會被接受。

範例

輸入 1

2
3 3
0 0
1 0
0 1
0 0
1 0
0 1
3 3
0 0
1 0
0 1
0 1
1 0
1 1

輸出 1

0.083333333333
0.125000000000

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.