QOJ.ac

QOJ

Time Limit: 10 s Memory Limit: 1024 MB Total points: 100

#8946. 一眼丁真

الإحصائيات

小 A 和小 S 是 ACM 隊友。小 A 的眼睛很大、視力出眾,往往能從數據中看出奇怪的規律。

某次訓練,小 S 在紙上畫了個圓。小 A 看了一眼,說:你這明明是正 17 邊形啊!他又拿出許多正多邊形圖片,讓小 S 觀察。但小 S 對此毫無頭緒,於是他請你幫忙鑑定一下。

具體來說,給定多邊形最大邊數 $n$,小 A 採用以下方式生成了平面上的 $N$ 個點:

  • 首先,選取一個點 $(x,y)$ 作為中心。這個點可能固定為 $(0, 0)$,也可能是在 $[-1,1] \times [-1,1]$ 中均勻選取的。
  • 隨機在 $[\max(3, n-5),n]$ 中選取一個整數 $k$。
  • 考慮以 $(x, y)$ 為圓心, $1$ 為半徑的圓。均勻隨機選取圓的一個內接正 $k$ 邊形。
  • 重複 $N$ 次,每次均勻隨機選取正 $k$ 邊形邊界上的一點 $u$,並把 $\hat u=u+\mathcal N$ 加入到數據中。這裡,$\mathcal N$ 是一個隨機雜訊,其兩維座標分別獨立遵循以 $0$ 為均值,$0.01$ 為標準差的高斯分佈。
  • 以上所有隨機過程獨立。

你需要從這 $N$ 個點中,還原出多邊形的邊數 $k$。

輸入格式

從標準輸入讀入數據。

本題有多組測試數據。第一行輸入正整數 $T$,表示測試數據組數。

對於每組數據,第一行輸入兩個正整數 $N,n$,表示點數和多邊形邊數的最大可能值。之後 $N$ 行,每行兩個浮點數 $\hat u_x, \hat u_y$,表示一個點 $\hat u$ 的座標。輸入中所有浮點數均保留 $6$ 位有效數字。

輸出格式

輸出到標準輸出。

對於每組數據,輸出一個 $k$ 表示多邊形的邊數。

範例

範例 1

見下發文件。

說明

以下分別是範例第 $2,4,5,8$ 組數據的可視化圖像。

img

子任務

對於所有測試點,$T=200$,$N=1000$,$3 \le n \le 30$。

本題共十個測試點,每個測試點十分,不捆綁測試

測試點編號$n \le$中心的選取方式
1$4$在 $[-1,1] \times [-1,1]$ 中均勻選取
2固定為 $(0,0)$
3$10$在 $[-1,1] \times [-1,1]$ 中均勻選取
4固定為 $(0,0)$
5$20$在 $[-1,1] \times [-1,1]$ 中均勻選取
6固定為 $(0,0)$
7$25$在 $[-1,1] \times [-1,1]$ 中均勻選取
8固定為 $(0,0)$
9$30$在 $[-1,1] \times [-1,1]$ 中均勻選取
10固定為 $(0,0)$

評分方式

對於每個測試點,若你在至多一組測試數據上答案錯誤,可以獲得全部分數,否則不能獲得任何分數。

說明

你可能需要以下數學定義,但無法理解以下內容並不影響你的解題:

一個隨機變數 $X$ 遵循均值為 $\mu$、標準差為 $\sigma$ 的高斯分佈 $\mathcal N(\mu, \sigma^2)$ 意味著其機率密度函數為 $$f(x) = \frac{1}{\sqrt{2 \pi} \sigma} e^{-\frac{(x-\mu)^2}{2\sigma^2}}.$$ 對於一個機率密度函數為 $f(x)$ 的連續隨機變數 $X$ 以及實數 $a < b$,隨機變數 $X$ 生成的隨機數落在區間 $(a,b)$ 的機率為 $$\Pr(X \in (a,b)) = \int_a^b f(x) dx.$$

你可能需要以下問題性質:

高斯分佈的特點為:其密度從均值往左右以指數速度下降,因此在標準差較小的情況下,隨機變數的值高機率與均值相近。例如,在本題的情境中,$\mu = 0$,$\sigma = 0.01$,生成出的隨機數的絕對值大於 $0.04$ 的機率約為 $6 \times 10^{-4}$,大於 $0.05$ 的機率不超過 $6 \times 10^{-7}$,大於 $0.07$ 的機率不超過 $3 \times 10^{-12}$。

Editorials

IDTypeStatusTitlePosted ByLast UpdatedActions
EditorialOpen Official EditorialQingyu- Download

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.