最近,Elaxia和w**的關系特別好,他們很想整天在一起,但是大學的學習太緊張了,他們 必須合理地安排兩個人在一起的時間。Elaxia和w**每天都要奔波于宿舍和實驗室之間,他們 希望在節約時間的前提下,一起走的時間盡可能的長。 現在已知的是Elaxia和w**所在的宿舍和實驗室的編號以及學校的地圖:地圖上有N個路 口,M條路,經過每條路都需要一定的時間。 具體地說,就是要求無向圖中,兩對點間最短路的最長公共路徑。
第一行:兩個整數N和M(含義如題目描述)。 第二行:四個整數x1、y1、x2、y2(1 ≤ x1 ≤ N,1 ≤ y1 ≤ N,1 ≤ x2 ≤ N,1 ≤ ≤ N),分別表示Elaxia的宿舍和實驗室及w**的宿舍和實驗室的標號(兩對點分別 x1,y1和x2,y2)。 接下來M行:每行三個整數,u、v、l(1 ≤ u ≤ N,1 ≤ v ≤ N,1 ≤ l ≤ 10000),表 u和v之間有一條路,經過這條路所需要的時間為l。
一行,一個整數,表示每天兩人在一起的時間(即最長公共路徑的長度)
對于30%的數據,N ≤ 100; 對于60%的數據,N ≤ 1000; 對于100%的數據,N ≤ 1500,輸入數據保證沒有重邊和自環。
題意已經很粗暴了 首先要找到哪些邊在最短路上,可以想到如果dis_to_st[i] + dis_to_ed[j] + w[i, j] = 最短路的話,這條邊處在最短路上 為了求出這些距離我們把給出的四個點我們分別跑spfa一共是四次,再把共有的邊連成一張新的圖拓撲排序做遞推,
新聞熱點
疑難解答