30. 阿源的田地 6

0 Judge

Code: 0


阿源的田地 6

一陣天搖地動,原來是盤古在開天啊,大陸板塊又重新組合了,阿源一出來看到嚇了一跳,"我的田地呢",阿源想到前幾天藏了好多錢在他的田地下,還好根據他掐指一算,確定他的田地還是完整沒被破壞的,只是可能旋轉和位移了,阿源拿起他之前做的田地的地圖,田地大概是這樣構成的,他是由$l_1,l_2,...,l_n$ $n$ 條線段所組成的,$\theta_i(\theta_i \neq \pi , \theta_i \lt 2\times\pi)$ 為 $l_{i}$與$l_{i\% n + 1}$的夾角,而田地的組成方式就是由一個點開始,朝某個方向走$l_1$公尺,之後順時鐘轉$\theta_i$度,接著走$l_2$....,以此類推而最後走到的地方為起點這時如果他順時鐘旋轉$\theta_n$度,會剛好朝向他出發的方向,而他的田地就是由這些線段所圍起來的部分,他的田地可能不是凸多邊形,也有可能有線段交叉,而現在他發現一塊田地也是由n條線段所組成的,長度分別為$r_1,r_2....,r_n$,夾角$\varphi_i$為$r_i$跟$r_{i \% n + 1}$的夾角,很像他的田地,請幫他判斷這兩塊田地是否相同,相同的話就有很高的機率是阿源的田地了,相同的定義為能找到一個整數k,使得$l_i = r_{(i+k) \% n+1}(i = 1 \sim n)$且$\theta_i = \varphi_{(i+k) \% n +1}(i = 1 \sim n)$,為了方便計算,阿源幫你把夾角跟線段長度都正規化為$1 \sim 100000$的正整數,如果數字相同就代表夾角相同或線段長度相同,不同就是不相同

輸入說明

本題測資較大, cin cout使用者記得開輸出入優化

輸入的第一行包含一個正整數 $T(T\leq 10)$,代表接下來有 $T$ 個測試資料。 接下來會又一個$n(5 \leq n \leq 10^6)$代表有幾條線段,接下來會有四行,第一行跟第二行用來描述述阿源原本的田地,第三行跟第四行用來描述現在這個疑似阿源的田地。 每行皆有$n$個數字第一三行代表的是經正規化後的線段的長度,第二四行代表經正規化後的角度。

輸出說明

對於每筆測試資料請判斷這塊田地跟阿源地圖上畫的是否一樣,一樣請輸出"Yes",否則請輸出"No"。

範例輸入

範例輸出

範例解釋

子題一[30%]

$n \leq 1000$

子題二[70%]

$n \leq 10^6$


Judge Setting

run-time limit: 5000 ms
memory limit: 304857600 byte
測資數量: 2