jzoj1503 體育場 帶權並查集

2021-08-21 07:33:51 字數 860 閱讀 4288

乙個圓形300公尺的操場,外面位置無數排的椅子,然後給出一些條件,形式為: ab

x abx

意思為a在b的順時針方向第x個,求有多少個要求無法滿足

用並查集,然後乙個fa

r far

陣列表示離它的fa

ther

f at

he

r有多遠,每次壓縮路徑。之後如果輸入的a和b在乙個分量內就進行判斷 (f

ar[x

]+w)

%≠fa

r[y]

( fa

r[x]

+w)%

≠far

[y

]這樣就累加不滿足的條件。

不然就進行連線 (f

ar[x

]−fa

r[y]

+w+300)%

300 (fa

r[x]

−far

[y]+

w+

300)

%300

這樣計算連線之後的距離,而且防止了負數情況

#include

#include

using

namespace

std;

int n,m,x,y,w,father[50001],far[50001],s;

int find(int x)

else

}void unionn(int x,int y,int w)

int main()

else

unionn(x,y,w);

//連線

}printf("%d",s);

}

並查集 jzoj1503 體育場

description 觀眾席每一行構成乙個圓形,每個圓形由300個座位組成,對300個座位按照順時針編號1到300,且可以認為有無數多行。現在比賽的組織者希望觀眾進入場地的順序可以更加的有趣,在門票上並沒有規定每個人的座位,而是與這個圈中某個人的相對位置,可以坐在任意一行。門票上標示的形式如下 a...

JZOJ B組 體育場

觀眾席每一行構成乙個圓形,每個圓形由300個座位組成,對300個座位按照順時針編號1到300,且可以認為有無數多行。現在比賽的組織者希望觀眾進入場地的順序可以更加的有趣,在門票上並沒有規定每個人的座位,而是與這個圈中某個人的相對位置,可以坐在任意一行。門票上標示的形式如下 a b x 表示第b個人必...

體育場 帶權並查集

description 觀眾席每一行構成乙個圓形,每個圓形由300個座位組成,對300個座位按照順時針編號1到300,且可以認為有無數多行。現在比賽的組織者希望觀眾進入場地的順序可以更加的有趣,在門票上並沒有規定每個人的座位,而是與這個圈中某個人的相對位置,可以坐在任意一行。門票上標示的形式如下 a...