hihocoder 1515 分數調查

2021-08-06 02:54:51 字數 1098 閱讀 1178

時間限制:

10000ms

單點時限:

1000ms

記憶體限制:

256mb

小hi的學校總共有n名學生,編號1-n。學校剛剛進行了一場全校的古詩文水平測驗。  

學校沒有公布測驗的成績,所以小hi只能得到一些小道訊息,例如x號同學的分數比y號同學的分數高s分。  

小hi想知道利用這些訊息,能不能判斷出某兩位同學之間的分數高低?

第一行包含三個整數n, m和q。n表示學生總數,m表示小hi知道訊息的總數,q表示小hi想詢問的數量。  

以下m行每行三個整數,x, y和s。表示x號同學的分數比y號同學的分數高s分。  

以下q行每行兩個整數,x和y。表示小hi想知道x號同學的分數比y號同學的分數高幾分。  

對於50%的資料,1 <= n, m, q <= 1000  

對於100%的資料,1 <= n, m, q<= 100000 1 <= x, y <= n -1000 <= s <= 1000

資料保證沒有矛盾。

對於每個詢問,如果不能判斷出x比y高幾分輸出-1。否則輸出x比y高的分數。

樣例輸入

10 5 3  

1 2 10

2 3 10

4 5 -10

5 6 -10

2 5 10

1 10

1 5

3 5

樣例輸出

-1  

20

0

思路:帶權並查集。

把知道分數關係的人放入同乙個集合。r[x]表示x比p[x]高多少分。

#includeusing namespace std;

const int max=1e5+10;

int p[max],r[max];

int f(int x)

return p[x];

}int main()

} while(q--)

{ scanf("%d%d",&x,&y);

int fx=f(x),fy=f(y);

if(fx!=fy)cout<<-1<

hihoCoder 1515 分數調查

小hi的學校總共有n名學生,編號1 n。學校剛剛進行了一場全校的古詩文水平測驗。學校沒有公布測驗的成績,所以小hi只能得到一些小道訊息,例如x號同學的分數比y號同學的分數高s分。小hi想知道利用這些訊息,能不能判斷出某兩位同學之間的分數高低?input 第一行包含三個整數n,m和q。n表示學生總數,...

分數調查 HihoCoder 1515

小hi的學校總共有n名學生,編號1 n。學校剛剛進行了一場全校的古詩文水平測驗。學校沒有公布測驗的成績,所以小hi只能得到一些小道訊息,例如x號同學的分數比y號同學的分數高s分。小hi想知道利用這些訊息,能不能判斷出某兩位同學之間的分數高低?input 第一行包含三個整數n,m和q。n表示學生總數,...

HihoCoder 1515 帶權並查集

小hi的學校總共有n名學生,編號1 n。學校剛剛進行了一場全校的古詩文水平測驗。學校沒有公布測驗的成績,所以小hi只能得到一些小道訊息,例如x號同學的分數比y號同學的分數高s分。小hi想知道利用這些訊息,能不能判斷出某兩位同學之間的分數高低?input 第一行包含三個整數n,m和q。n表示學生總數,...