在XX老師的AA語課上,因為太無聊了,大家都不想專心上課,有些人開始想和其他人聊天,但被XX老師發現會掀起一場腥風血雨,他們決定私底下偷偷傳紙條。
只有坐在附近的學生可以傳遞紙條,坐在附近的學生之間也有不固定的距離 (總是會有人喜歡亂跑)。
但上課真的太無聊了,所有人都睡著了,但睡飽的人會慢慢醒來,睡著的人沒辦法接收傳遞紙條,傳紙條的路徑也不能經過睡著的人。
(保證1號學生先睡飽,接著2號學生,以此類推,不會有x號醒來而x-k還沒醒的狀況)
為了降低被XX老師發現的風險,傳紙條的距離越短越好,現在有Q個學生想要傳紙條或起床,請問各個紙條傳遞的最短距離是多少?
對於每次詢問有以下兩種操作
1. 1 x 代表第x號學生起床了
2. 2 x y代表x想要傳紙條給y
對於每個2.操作,輸出傳紙條的最短距離,若無法送達,請輸出-1
一開始有三正整數$N,M,Q(N\le 300,M\le (\frac{n(n-1)}{2}),Q\le 2\times 10^5)$,代表有$N$個學生,$M$個坐在附近的關係,$Q$個學生想要傳紙條,接下來有$M$行,每行有三個正整數$u,v,w(1\le u,v \le N,w\le 5\times 10^4)$代表$u$和$v$可以互相傳紙條且他們之間的距離是$w$,最後$Q$行,每行一開始有一個整數$op(1\le op\le 2)$代表操作的種類,若$op$為$1$則接下來有一個整數$x(1\le x\le N)$代表$x$號學生起床,若$op$為$2$則接下來有兩個整數$x,y(1\le x,y\le N)$代表$x$想傳紙條給$y$
*可能會有重邊
*自己傳紙條給自己距離為 0 (就是會有人這麼閒)
對於每次傳紙條,輸出紙條傳遞的最短距離。
如果沒辦法將紙條傳到y則輸出$-1$
*傳紙條的人或收紙條的人在睡覺也算無法傳到
3 3 5 1 2 5 2 3 1 1 3 1 1 1 1 2 2 1 2 1 3 2 1 2
5 2
範例說明:
第一次詢問時3號學生還沒起床,所以紙條不能傳經過三號學生,因此最短距離為1 -> 2 距離5
第二次詢問三號起床了,紙條先傳到3號學生再傳給2號學生距離為2
編號 | 身分 | 題目 | 主題 | 人氣 | 發表日期 |
沒有發現任何「解題報告」 |