poj 2236 並查集(修電腦,使兩兩互聯)

2021-06-28 15:35:18 字數 694 閱讀 2390

題意:給定n臺初始都壞了的電腦。乙個數字d,表示兩台計算機能夠直接通訊的最大距離,超過這個距離就無法進行通訊。然後分別告訴這些電腦的座標,接下來有兩種操作,第一種o表示這台電腦修好,第二種s,表示測試這兩台電腦能不能進行正常的通訊。

思路:並查集簡單應用。每修好一台電腦,將與其能夠直接相連的並且已經修好的電腦merge一下。

#include #include #include #define n 1005

struct nodep[n];

int n,d;

int f[n],g[n][n],used[n];

double dis(int a,int b)

int test(int x,int y)

int find(int x)

void merge(int x,int y)

int main(){

int i,j;

char ch;

memset(g, 0, sizeof(g));

memset(used, 0, sizeof(used));

scanf("%d %d",&n,&d);

for(i = 1;i<=n;i++)

f[i] = i;

for(i = 1;i<=n;i++)

scanf("%d %d\n",&p[i].x,&p[i].y);

for(i = 1;i

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次查詢...