點我帶權並查集的題,記乙個\(d\)陣列維護每個戰艦前面有多少戰艦,再在每個樹根上記錄乙個集合大小\(sum\),每次進行\(get_father\)的時候維護一下\(d\)陣列,合併的時候更新集合大小。由於寫了路徑壓縮,每次合併的時候還要把之前集合的\(sum\)更新到\(d\)陣列上。
#include#define n (1000000+5)
using namespace std;
inline int read()
while(isdigit(c))
return cnt*f;
}int t,fa[n],d[n],sum[n],x,y;
char c;
int get_father(int x)
void merge(int x,int y)
int query(int x,int y)
}int main()
return 0;
}
NOI2002 銀河英雄傳說
noi2002 day1 t1 公元5801年,地球居民遷移至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集團在巴公尺利恩星域爆發戰爭。泰山壓頂集團派宇宙艦隊司令萊因哈特率領十萬餘艘戰艦出征,氣吞山河集團點名將楊威利組織...
NOI 2002 銀河英雄傳說
有 n 列戰場,每一列一開始只有乙個戰艦,編號就是對應的戰場編號。有 m 次操作 注意每一列戰場的戰艦都是排成一列的。帶偏移量的並查集。記錄 d x 表示 x 到所在列頭的一段上共有多少個戰艦。記錄 sz x 表示 x 所在的一列有多少個戰艦。為了保證複雜度,我們在做的時候還是要路徑壓縮。但是 d ...
NOI2002 銀河英雄傳說
公元五八 一年,地球居民遷移至金牛座 第二行星,在那裡發表銀河聯邦創立宣言,同年改元為宇宙歷元年,並開始向銀河系深處拓展。宇宙歷七九九年,銀河系的兩大軍事集 在巴公尺利恩星域爆發戰爭。泰山壓頂集 宇宙艦隊司令萊因哈特率領十萬餘艘戰艦出征,氣吞山河集 點名將楊威利組織麾下三萬艘戰艦迎敵。楊威利擅長排兵...