不怎麼難啦~~
思路如下
首先先寫乙個函式判斷兩個洞是否相連,即兩洞之間距離是否小於等於球直徑(注意是直徑)。
struct第二個難點在於如何判斷是否可以穿過乳酪,對此我們可以模擬老鼠鑽洞(run函式)見**:dong ;
dong
p[1001];
bool
pd(dong
a,dong
b)
寫完才知道這個叫dfs
void思考一下,對於這個函式我們要從最下面的乙個洞開始走,凡是走過的洞都不會再走,但如果前方不能再走了還會返回這個洞尋找下乙個能連線到此洞的洞,這樣的話就可以將每乙個能和底邊連線到的洞全部判斷一遍,只要其中有洞連線到頂端,就用jud記錄為1。因此等會在主函式中我們用迴圈把能連線到底邊的所有洞找到均呼叫此函式即可。run(int
x) for(inti=
1; i
<=
n; i
++)
}}
完整**如下
#includeusing
namespace
std;
unsigned
long
long
r,n,h,jud;//定義在最前面,很多函式都要用到
unsigned
long
long
m[1001];//上文提到過的用來記錄該洞是否走過的陣列
struct
dong ;
dong
p[1001];
bool
pd(dong
a,dong
b) void
run(int
x) for(inti=
1; i
<=
n; i
++) }}
intmain()
if(jud
==1) printf("yes\n");
else
printf("no\n");
}return
0;}
NOIP2017提高組Day 2 乳酪
現有一塊 酪,它的高度為 h,它的長度和寬度我們可以認為是無限大的,乳酪中間有許多 半徑相同 的球形空洞。我們可以在這塊乳酪中建立空間座標系,在座標系中,乳酪的下表面為z 0,乳酪的上表面為z h。現在,乳酪的下表面有乙隻小老鼠 jerry,它知道乳酪中所有空洞的球心所在的座標。兩相切或是相交,則 ...
NOIP2017提高組 列隊
noip2017提高組 day2 t3 sylvia 是乙個熱愛學習的女孩子。前段時間,sylvia 參加了學校的軍訓。眾所周知,軍訓的時候需要站方陣。sylvia 所在的方陣中有 n m 名學生,方陣的行數為 n,列數為 m 為了便於管理,教官在訓練開始時,按照從前到後,從左到右的順序給方陣中的學...
NOIP 2017 提高組 寶藏
傳送門 參與考古挖掘的小明得到了乙份藏寶圖,藏寶圖上標出了 n nn 個深埋在地下的寶藏屋,也給出了這 n nn 個寶藏屋之間可供開發的 m mm 條道路和它們的長度。小明決心親自前往挖掘所有寶藏屋中的寶藏。但是,每個寶藏屋距離地面都很遠,也就是說,從地面打通一條到某個寶藏屋的道路是很困難的,而開發...