Luogu P1196 銀河英雄傳說

2022-03-16 19:58:08 字數 616 閱讀 6092

我們考慮用並查集來維護戰艦的情況。

同時,我們用乙個$d$陣列來記錄$x$與$fa[x]$之間的距離。再用$size$陣列記錄戰艦當前所在列的戰艦數。

易知兩艘在同一列的戰艦之間隔著$|d[x]-d[y]|-1$艘戰艦。

#include#define n 30010

using namespace std;

int t,x,y;

int fa[n],d[n],size[n];

char op;

int find(int x)

int root=find(fa[x]);

d[x]+=d[fa[x]];

return fa[x]=root;

}void init()

return;

}void merge(int x,int y)

void judge(int x,int y)

else

return;

}void work()

else if(op=='c')

return;

}int main()

return 0;

}

luogu1196 銀河英雄傳說

題目描述 公元五八 一年,地球居民遷至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集團在巴公尺利恩星域爆發戰爭。泰山壓頂集團派宇宙艦隊司令萊因哈特率領十萬餘艘戰艦出征,氣吞山河集團點名將楊威利組織麾下三萬艘戰艦迎敵。楊威...

P1196 銀河英雄傳說

這題真的很經典,我wa了三次,最後一次才ac 因為這道題是很有技術含量的,能自己寫出來真的很厲害 不是在誇自己 如果只是粗略的去看題解或者抄題解 倒是可以用來矇騙自己 那這道題就失去意義了。下面的 每一句話,都是值得深刻推敲的。舉幾個例子 int find int x 這裡就不能直接寫par x f...

洛谷 1196 銀河英雄傳說

傳送門 寫題一時wa了時間不多了計畫還沒完成先放下去寫道水題好像是正確的選擇。對每個點記錄它到當前代表元的距離,初始都為0 到自己 合併時之前代表元的距離就等於它要合併的那個集合的size。路徑壓縮時先加上父親到代表元的距離,再把父親換成代表元。twenty include include incl...