貼個模板,POJ 1511

2021-07-04 03:32:43 字數 632 閱讀 9113

n個點m條邊,有向圖,求1到其餘各點的最短距離與各點到1的距離最短的路徑總和。

n m 1e6

樸素必跪。。。

dijkstra堆優化和spfa應該都能過。

因為是有向圖,求1到各點的距離,直接原圖上跑spfa。。

求各點回到1的距離,將邊反轉(from變to ,to 變from),在新圖上再跑一遍spfa。

8s的題,7s卡過,真尼瑪2333333。。單純的貼個spfa的模板,以後說不定有用-- 。。

#include#include#include#include#include#include#includeusing namespace std;

const int maxn=1000055;

const long long inf=1000000005;

bool inq[maxn];

long long dis[maxn];

int a[maxn],b[maxn],c[maxn];

int n,m;

struct edge;

vectorg[maxn];

void spfa(int src)}}

}}int main()

for(int i=0;i

POJ 1511 最短路徑

include include include using namespace std const int maxn 1000005 struct node node mat1 maxn mat2 maxn queueq node pool maxn 2 2 int counts long long...

poj1511解題報告(SPFA演算法)

題目大意 給出n個點和n條有向邊,求所有點到源點1的來回最短路之和 保證每個點都可以往返源點1 解題思路 使用spfa 鄰接鍊錶來做,因為要求來回的最短距離之和,所以先用spfa求一遍最短路,再把每條邊反過來 a到b的邊變成b到a的邊 再用spfa求一遍最短路。注意 結果要用long long 來儲...

poj1511 鏈式前向星 dijkstra堆優化

如果看題解往下划拉 這題網上說卡資料,只能鏈式前向星才能過?正好學一下鏈式前向星的處理 其實 這個和vector做的鄰接表差不多。可能用起來會快一點?不然這題鄰接表為啥過不了 我覺得dijkstra的堆優化和spfa算有非常強的關聯性 這裡提幾句 分析一下異同 spfa是一種基於bfs的單源最短路演...