洛谷P3958 乳酪

2021-08-29 13:43:47 字數 2438 閱讀 7888

現有一塊**酪,它的高度為 hh,它的長度和寬度我們可以認為是無限大的,乳酪 中間有許多 半徑相同 的球形空洞。我們可以在這塊乳酪中建立空間座標系,在座標系中, 乳酪的下表面為z = 0z=0,乳酪的上表面為z = hz=h。

現在,乳酪的下表面有乙隻小老鼠 jerry,它知道乳酪中所有空洞的球心所在的坐 標。如果兩個空洞相切或是相交,則 jerry 可以從其中乙個空洞跑到另乙個空洞,特別 地,如果乙個空洞與下表面相切或是相交,jerry 則可以從乳酪下表面跑進空洞;如果 乙個空洞與上表面相切或是相交,jerry 則可以從空洞跑到乳酪上表面。

位於乳酪下表面的 jerry 想知道,在 不破壞乳酪 的情況下,能否利用已有的空洞跑 到乳酪的上表面去?

空間內兩點p_1(x_1,y_1,z_1)p1​(x1​,y1​,z1​)、p2(x_2,y_2,z_2)p2(x2​,y2​,z2​)的距離公式如下:

$$\mathrm(p_1,p_2)=\sqrt$$

輸入格式:

每個輸入檔案包含多組資料。

的第一行,包含乙個正整數 $t$,代表該輸入檔案中所含的資料組數。

接下來是 $t$ 組資料,每組資料的格式如下: 第一行包含三個正整數 $n,h$ 和 $r$,兩個數之間以乙個空格分開,分別代表乳酪中空 洞的數量,乳酪的高度和空洞的半徑。

接下來的 $n$ 行,每行包含三個整數 $x,y,z$,兩個數之間以乙個空格分開,表示空 洞球心座標為$(x,y,z)$。

輸出格式:

$t$ 行,分別對應 $t$ 組資料的答案,如果在第 $i$ 組資料中,jerry 能從下 表面跑到上表面,則輸出yes,如果不能,則輸出no(均不包含引號)。

輸入樣例#1:

3 

2 4 1

0 0 1

0 0 3

2 5 1

0 0 1

0 0 4

2 5 2

0 0 2

2 0 4

輸出樣例#1:

yes

noyes

【輸入輸出樣例 1 說明】

第一組資料,由乳酪的剖面圖可見:

第乙個空洞在$(0,0,0)$與下表面相切

第二個空洞在$(0,0,4)$與上表面相切 兩個空洞在$(0,0,2)$相切

輸出yes

第二組資料,由乳酪的剖面圖可見:

兩個空洞既不相交也不相切

輸出no

第三組資料,由乳酪的剖面圖可見:

兩個空洞相交 且與上下表面相切或相交

輸出yes

【資料規模與約定】

對於 20%的

於 40%的資料,1 <= n <=8, 1 <=  h , r <= 10,000,座標的絕對值不超過 10,000。

對於80%的資料, 1 <= n <= 1,000, 1 <= h , r <= 10,000$,座標的絕對值不超過10,000。

對於 100%的資料,1 <= n <= 1,000,1  <=  h , r <= 1,000,000,000,t <= 20,座標的 絕對值不超過 1,000,000,000。

我也不知道為什麼一複製過來就是這樣式的

這又是一道一眼就能看出來的爆搜並查集的題,我照著題解敲只敲出來了80分。。。。。

我實在de不出來了,先放到這上面等有時間在de

大致就是儲存一下能通到下表面的洞和能通到上表面的洞,然後跑一遍並查集,把能互相通到的洞變成父子關係

最後列舉上下表面的點,如果有爸爸一樣就表示他們是聯通的

放**

#include#include#include#includeusing namespace std;

double x[100003],y[100003],z[100003];

int f1[100003],f2[100003],f[1003];

int n,h,r;

int fang(double p)

bool judge(int p,int q)

int find(int p)

int main()

}

}int s = 0;

for(int j = 1;j <= t1;j++)

}if(s == 1)break;

}if(s == 1)printf("yes\n");

else printf("no\n");

}return 0;

}

洛谷P3958 乳酪

現有一塊 酪,它的高度為 h 它的長度和寬度我們可以認為是無限大的,乳酪 中間有許多 半徑相同 的球形空洞。我們可以在這塊乳酪中建立空間座標系,在座標系中,乳酪的下表面為 z 0 乳酪的上表面為 z h 現在,乳酪的下表面有乙隻小老鼠 jerry,它知道乳酪中所有空洞的球心所在的坐 標。如果兩個空洞...

洛谷P3958 乳酪

原題位址 17年noip提高組的第二題,看到好多人都用搜尋,就拿並查集來水一篇題解 現有一塊 酪,它的高度為h,它的長度和寬度我們可以認為是無限大的,乳酪 中間有許多半徑相同的球形空洞。我們可以在這塊乳酪中建立空間座標系,在坐 標係中,乳酪的下表面為z 0,乳酪的上表面為z h。現在,乳酪的下表面有...

洛谷P3958 乳酪

題目描述 現有一塊 酪,它的高度為 h,它的長度和寬度我們可以認為是無限大的,乳酪中間有許多半徑相同 的球形空洞。我們可以在這塊乳酪中建立空間座標系,在座標系中,乳酪的下表面為z 0,頂面為z h。現在,乳酪的下表面有乙隻小老鼠 jerry,它知道乳酪中所有空洞的球心所在的坐 標。如果兩個空洞相切或...