現有一塊**酪,它的高度為 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,它知道乳酪中所有空洞的球心所在的坐 標。如果兩個空洞相切或...