題意:給定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次查詢...