在乙個熱帶雨林中生存著一群猴子,它們以樹上的果子為生。昨天下了一場大雨,現在雨過天晴,但整個雨林的地表還是被大水淹沒著,部分植物的樹冠露在水面上。猴子不會游泳,但跳躍能力比較強,它們仍然可以在露出水面的不同樹冠上來回穿梭,以找到喜歡吃的果實。
現在,在這個地區露出水面的有n棵樹,假設每棵樹本身的直徑都很小,可以忽略不計。我們在這塊區域上建立直角座標系,則每一棵樹的位置由其所對應的座標表示(任意兩棵樹的座標都不相同)。
在這個地區住著的猴子有m個,下雨時,它們都躲到了茂密高大的樹冠中,沒有被大水沖走。由於各個猴子的年齡不同、身體素質不同,它們跳躍的能力不同。有的猴子跳躍的距離比較遠(當然也可以跳到較近的樹上),而有些猴子跳躍的距離就比較近。這些猴子非常聰明,它們通過目測就可以準確地判斷出自己能否跳到對面的樹上。
【問題】現已知猴子的數量及每乙個猴子的最大跳躍距離,還知道露出水面的每一棵樹的座標,你的任務是統計有多少個猴子可以在這個地區露出水面的所有樹冠上覓食。
輸入格式:
輸入檔案monkey.in包括:
第1行為乙個整數,表示猴子的個數m(2<=m<=500);
第2行為m個整數,依次表示猴子的最大跳躍距離(每個整數值在1--1000之間);
第3行為乙個整數表示樹的總棵數n(2<=n<=1000);
第4行至第n+3行為n棵樹的座標(橫縱座標均為整數,範圍為:-1000--1000)。
(同一行的整數間用空格分開)
輸出格式:
輸出檔案monkey.out包括乙個整數,表示可以在這個地區的所有樹冠上覓食的猴子數。
輸入樣例#1:
41 2 3 4
60 0
1 01 2
-1 -1
-2 0
2 2
輸出樣例#1:
3
【資料規模】
對於40%的資料,保證有2<=n <=100,1<=m<=100
對於全部的資料,保證有2<=n <= 1000,1<=m=500
感謝@charlie003 修正資料
分析:
最小生成樹模板題???em。。。本題注意陣列要開夠,至少1000*1000,其次就是在模板的基礎上加乙個變數統計答案即可。
code:
1 #include2 #include3 #include4 #include5 #include6using
namespace
std;
7const
int m=1000005;8
intxcor[m],ycor[m],ma[m];
9int
fa[m],n,m;
10int
tot;
11struct
nodea[m];
14 inline int
get()
21while (c>='
0'&&c<='9'
)25return res*f;26}
27int findr(int
x)31
void merge (int x,int
y)37
bool cmp(node x,node y)
38int
main()
46for (int i=1;i<=n;i++)53}
54 sort(ma+1,ma+m+1
);55 sort(a+1,a+tot+1
,cmp);
56//
for (int i=1;i<=tot;i++) cout<57
int ans=m,j=1;58
for (int i=1;i<=tot;i++)64}
65if (ans<0) cout<<0
<66else cout67//
system("pause");
68return0;
69 }
HAOI2006 聰明的猴子 題解
在乙個熱帶雨林中生存著一群猴子,它們以樹上的果子為生。昨天下了一場大雨,現在雨過天晴,但整個雨林的地表還是被大水淹沒著,部分植物的樹冠露在水面上。猴子不會游泳,但跳躍能力比較強,它們仍然可以在露出水面的不同樹冠上來回穿梭,以找到喜歡吃的果實。現在,在這個地區露出水面的有n棵樹,假設每棵樹本身的直徑都...
最小生成樹 HAOI2006 聰明的猴子
題目 haoi2006 聰明的猴子 描述 在乙個熱帶雨林中生存著一群猴子,它們以樹上的果子為生。昨天下了一場大雨,現在雨過天晴,但整個雨林的地表還是被大水淹沒著,猴子不會游泳,但跳躍能力比較強,它們仍然可以在露出水面的部分植物的樹冠上來回穿梭,以找到喜歡吃的果實。現在,在這個地區露出水面的有n棵樹,...
最小生成樹 HAOI2006 聰明的猴子
原題鏈結 haoi2006 聰明的猴子 給你 n 個數,代表最多可以走多長的邊權,再給你 m 個座標,每個座標給 x,y 兩個值,求在 n 中有多少值能夠走完 m 個這些座標 很水的一道題,只是熟悉下模板 就是座標兩兩連線,然後用最小生成樹亂搞一下 最小生成樹模板出錯改了乙個小時 quq defin...