description
觀眾席每一行構成乙個圓形,每個圓形由300個座位組成,對300個座位按照順時針編號1到300,且可以認為有無數多行。現在比賽的組織者希望觀眾進入場地的順序可以更加的有趣,在門票上並沒有規定每個人的座位,而是與這個圈中某個人的相對位置,可以坐在任意一行。
門票上標示的形式如下:a b x 表示第b個人必須在a的順時針方向x個位置(比如a坐在4號位子,x=2,則b必須坐在6號位子)。
現在你就座位志願者在入場口檢票。如果拿到一張門票,與之前給定的矛盾,則被視為是假票,如果無矛盾,視為真票。現在給定該行入場觀眾的順序,以及他們手中的門票,請問其中有多少假票?
input
第一行兩個數n(1<=n<=50,000)和m(1<=m<=100,000)。n表示人數。
接下來m行,每行三個數a,b,x標示b必須坐在a的順時針方向x個位置。(1<=a<=n), b(1<=b<=n), x(0<=x<300) (a!=b)
以上字母含義如題所述。
output
僅乙個數,表示在m張票中有多少假票。
sample input
10 10sample output1 2 150
3 4 200
1 5 270
2 6 200
6 5 80
4 7 150
8 9 100
4 8 50
1 7 100
9 2 100
2由於有無數行,對於每個輸入的a,b,可以把它們看做是同一行的。所以想到用並查集。
我們用w[i]陣列表示i到i的父親的距離,那麼如果a,b的父親相同,那麼他們的距離就是他們離父親的距離的差。
code
#include#includeusing namespace std;
int n,m,ans;
int fa[50000+20],w[50000+20];
int get(int x)
else
return x;
}int main()
else
}else
}printf("%d",ans);
}
jzoj1503 體育場 帶權並查集
乙個圓形300公尺的操場,外面位置無數排的椅子,然後給出一些條件,形式為 ab x abx 意思為a在b的順時針方向第x個,求有多少個要求無法滿足 用並查集,然後乙個fa r far 陣列表示離它的fa ther f at he r有多遠,每次壓縮路徑。之後如果輸入的a和b在乙個分量內就進行判斷 f...
體育場 帶權並查集
description 觀眾席每一行構成乙個圓形,每個圓形由300個座位組成,對300個座位按照順時針編號1到300,且可以認為有無數多行。現在比賽的組織者希望觀眾進入場地的順序可以更加的有趣,在門票上並沒有規定每個人的座位,而是與這個圈中某個人的相對位置,可以坐在任意一行。門票上標示的形式如下 a...
JZOJ3301 家族 並查集
乙個無向圖的每條邊都有乙個邊權,選擇乙個區間 l,r l,r l,r 然後把這個圖中邊權不在 l,r l,r l,r 的邊全部刪掉。會形成多個連通塊。大小為i ii的連通塊的權值為k ik i ki 求乙個r l r lr l盡量小的區間使得剩餘連通塊的權值和 s geq s s。暴力想法 列舉左端...