銀河英雄傳說 洛谷1196 並查集

2022-04-07 05:36:49 字數 581 閱讀 8678

有點有趣的並查集問題,類似於食物鏈而略簡單

使用sum[i]表示以i為祖先的並查集的元素個數(不包含i), 以dis[i]表示i到其祖先的距離,每次getfather時根據x的直接父親來更新x的dis值,每次修改操作時用sum[y]更新dis[x],用sum[x]更新sum[y],最後輸出時直接利用兩個點的dis值得解

1 #include 2 #include 3 #include 456

const

int maxn = 30000 + 500;7

intfather[maxn], dis[maxn];

8int

sum[maxn];

9char

c;10

intx, y;

11int

t;12

13int getfather(int

x) 20

21int

main ()

26for (int i = 1; i <= t; i++)

36 } else42}

4344

return0;

45 }

銀河英雄傳說 洛谷1196 並查集

有點有趣的並查集問題,類似於食物鏈而略簡單 使用sum i 表示以i為祖先的並查集的元素個數 不包含i 以dis i 表示i到其祖先的距離,每次getfather時根據x的直接父親來更新x的dis值,每次修改操作時用sum y 更新dis x 用sum x 更新sum y 最後輸出時直接利用兩個點的...

洛谷 1196 銀河英雄傳說 並查集

題目描述 楊威利擅長排兵布陣,巧妙運用各種戰術屢次以少勝多,難免恣生驕氣。在這次決戰中,他將巴公尺利恩星域戰場劃分成30000列,每列依次編號為1,2,30000。之後,他把自己的戰艦也依次編號為1,2,30000,讓第i號戰艦處於第i列 i 1,2,30000 形成 一字長蛇陣 誘敵深入。這是初始...

洛谷 1196 銀河英雄傳說

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