題解 洛咕P1629 郵遞員送信

2022-05-24 09:09:11 字數 1043 閱讀 9132

鏈結

乙個郵遞員要從一號點到每個點再回來,求最短路

題目說一次只能去乙個點,這樣就簡單了,求每個點最短路

怎麼求回來的最短路?每個點跑一次dijkstra?這樣會t

只要反向建邊,再求點1到各點的最短路不就行了嗎?(可以畫個圖手算一遍)

**:

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 1010,maxm = 100010

;const

int inf = 0x3f

;int

n,m,first1[maxn],dis[maxn],first2[maxn]; ;

int ans=0

;void

comput()

inline

intread()

while(c>='

0'&&c<='9'

)

return x*w;

}struct

edgee1[maxm],e2[maxm];

struct

node

};int qwq=0

;void insert1(int u,int v,int

w)int tt=0

;void insert2(int u,int v,int

w)void dijkstra(int

first,edge e)}}

}int

main()

dijkstra(first1,e1);

comput();

memset(dis,inf,

sizeof

(dis));

dijkstra(first2,e2);

comput();

printf(

"%d\n

",ans);

return0;

}

題解 P1629 郵遞員送信

題目 dijkstra 鏈式前向星 堆優化的題解。這一題明顯是求最短路。與模板不同,它要求的是多源最短路,是每個節點到源點的距離。這裡如果用暴力,或者每個節點求一遍,顯然在時間上是過不去的。每個節點求一遍的堆優化的dijkstra是50分 所以,就要用乙個重要的結論 逆圖中源點到各個點的最短路就是原...

P1629 郵遞員送信

有乙個郵遞員要送東西,郵局在節點 11。他總共要送 n 1n 1 樣東西,其目的地分別是節點 22 到節點 nn。由於這個城市的交通比較繁忙,因此所有的道路都是單行的,共有 mm 條道路。這個郵遞員每次只能帶一樣東西,並且運送每件物品過後必須返回郵局。求送完這 n 1n 1 樣東西並且最終回到郵局最...

P1629 郵遞員送信

有乙個郵遞員要送東西,郵局在節點1.他總共要送n 1樣東西,其目的地分別是2 n。由於這個城市的交通比較繁忙,因此所有的道路都是單行的,共有m條道路,通過每條道路需要一定的時間。這個郵遞員每次只能帶一樣東西。求送完這n 1樣東西並且最終回到郵局最少需要多少時間。輸入格式 第一行包括兩個整數n和m。第...