鏈結
乙個郵遞員要從一號點到每個點再回來,求最短路
題目說一次只能去乙個點,這樣就簡單了,求每個點最短路
怎麼求回來的最短路?每個點跑一次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。第...