10 27T4 乳酪 並查集

2022-05-01 18:27:14 字數 1801 閱讀 9355

描述

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

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

接下來是 t 組資料,每組資料的格式如下:

第一行包含三個正整數 n, h 和 r, 兩個數之間以乙個空格分開,分別代表乳酪中空 洞的數量,乳酪的高度和空洞的半徑。

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

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

樣例輸入[複製]

32 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

樣例輸出[複製]

yesno

yes提示

【資料規模與約定】

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

對於 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。

如果兩個洞相連就在同乙個並查集裡面,同時上下也是相當於乙個空洞,一起維護

然後維護一下就完了

code:

1 #include2 #include3 #include4

using

namespace

std;

5 unsigned long

long fa[10005

]; 6 unsigned long

long find(unsigned long

long

x)10

void merge(unsigned long

long x,unsigned long

long

y)15

}16 unsigned long

long x[10000],y[10000],z[10000

];17 unsigned long

long sq(unsigned long

long

x)20 unsigned long

long getdis(unsigned long

long i,unsigned long

long

j)23

intmain()

33for(unsigned long

long i=1;i<=n;i++)39}

40}41for(unsigned long

long i=1;i<=n;i++)

45if(find(0)==find(n+1

))48

else51}

52return0;

53 }

over

乳酪(並查集)

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

乳酪 並查集

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

C 初學記錄(乳酪 並查集)

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