a518: XX老師的AA語課 (Hard Version)
標籤 : Floyd-Warshell
通過比率 : 1人/1人 ( 100% ) [非即時]
評分方式:
Tolerant

最近更新 : 2024-11-03 11:57

內容

在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$

*傳紙條的人或收紙條的人在睡覺也算無法傳到

 

範例輸入 #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
範例輸出 #1
5
2
測資資訊:
記憶體限制: 128 MB
公開 測資點#0 (20%): 1.0s , <1K
公開 測資點#1 (20%): 1.0s , <1M
公開 測資點#2 (20%): 1.0s , <1M
公開 測資點#3 (20%): 1.0s , <1M
公開 測資點#4 (20%): 5.0s , <10M
提示 :

範例說明:


第一次詢問時3號學生還沒起床,所以紙條不能傳經過三號學生,因此最短距離為1 -> 2 距離5

第二次詢問三號起床了,紙條先傳到3號學生再傳給2號學生距離為2

標籤:
Floyd-Warshell
出處:
[管理者:
211096@stu.c... (唐狗針)
]


編號 身分 題目 主題 人氣 發表日期
沒有發現任何「解題報告」