題意:給出n,d代表有n個計算機,還有可以建立連線的限制距離d。o 後面的數字代表了維修好的計算機,s 後面的兩個數字用來判斷,這兩個計算機是否建立的連線。
思路:並查集,每修好乙個計算機,進行標記,同時列舉所有計算機,在維修好的計算機中,找出可以建立連線的計算機,進行合併。
#include#includeusing namespace std;
struct point
p[1010];
bool vis[1010];
int n,d;
double get_dis(int i,int j)//得到距離
void make_set()
int find_set(int x)
return p[x].parent;
}void join(int x,int y)
}int main()
make_set();
//for(int i=1;i<=n;i++)
//printf("%d,%d\n",p[i].x,p[i].y);
while(scanf("%s",s)!=eof)}}
else
}}
POJ2236 簡單並查集
poj2236 題目大意 有很多臺電腦,兩台電腦距離在d之內才能通訊,或者通過第三台電腦進行通訊。判斷兩台電腦能否通訊。0表示修復,s表示測試。題解 這是簡單的並查集,s的時候只要判斷兩台電腦是不是在乙個集合中就行,0將兩個點合併的時候注意要判斷距離是不是小於d。include include in...
poj 2236 並查集模板
題意 n台壞了的計算機放置在n個不同的位置,若兩台計算機的距離不超過d且兩台計算機都已修好,那麼這兩台計算機可以通訊。間接通訊也叫做通訊。現進行若干次操作,修計算機或查詢兩台計算機是否可通訊。查詢時判斷時候可通訊。題解 並查集 1.這個就是並查集模板題。2.憑藉著以往的記憶寫了乙個先是wa後是t,看...
poj2236 並查集板子題
題目大意 給你n臺電腦和乙個距離d,然後給你n臺電腦的座標xi,yi,0 xi,yi 10000,d 20000,給你最多3e5次查詢,每次查詢中,o x 表示修復了x號電腦,s x y 表示詢問x和y是否可以通訊,返回查詢結果 如果兩台電腦距離在d之內,那麼兩台電腦可以相連 題解 一共3e5次查詢...