NOI 2002 銀河英雄傳說(帶權並查集)

2021-08-29 18:45:26 字數 588 閱讀 9567

(小聲bb 我覺得帶權並查集比較玄妙) 

傳送門qaq

很容易想到用並查集來維護

設size表示當前佇列的數量(以i為隊頭的數量),to_root表示當前節點到祖宗的距離

則對於每乙個飛船,它到隊頭的距離,就等於它到它祖先的距離加上它祖先到隊頭的距離,而它的祖先到隊頭的距離,也可以變成類似的。可以在getfather時順便維護

哎。。還有多久才能停課啊。。真的不想上文化課了。。。。。

#include#define n 30005

using

namespace

std;

intfather[n],to_root[n],size[n];

inline

int getfather(int

x)int

main()

intt;

cin>>t;

while(t--)

if(opt=='c'

)

cout

<1

<<'\n'

; }

}return0;

}

NOI2002 銀河英雄傳說

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

NOI 2002 銀河英雄傳說

有 n 列戰場,每一列一開始只有乙個戰艦,編號就是對應的戰場編號。有 m 次操作 注意每一列戰場的戰艦都是排成一列的。帶偏移量的並查集。記錄 d x 表示 x 到所在列頭的一段上共有多少個戰艦。記錄 sz x 表示 x 所在的一列有多少個戰艦。為了保證複雜度,我們在做的時候還是要路徑壓縮。但是 d ...

NOI2002 銀河英雄傳說

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