LUOGU P1342 請柬 最短路

2022-05-12 10:31:51 字數 1033 閱讀 3251

傳送門

解題思路

又是一道語文題,弄清楚題意之後其實就能想出來了,從1跑一遍最短路,把$dis[n]$加入答案。在建個反圖跑一遍最短路,把$dis[n]_$加入最短路就行了。第一遍是去的時候,第二遍是回的時候。

#include#include

#include

#include

#include

using

namespace

std;

const

int maxn = 1000005

;typedef

long

long

ll;inline

intrd()

while(isdigit(ch))

return f?x:-x;

}int

n,m,head[maxn],cnt;

intto[maxn],nxt[maxn],val[maxn];

inthead_[maxn],cnt_,val_[maxn],nxt_[maxn],to_[maxn];

ll dis[maxn],ans;

bool

vis[maxn];

struct

node

};priority_queue

q;inline

void add(int bg,int ed,int

w)inline

void add_(int bg,int ed,int

w)void

dijkstra()

}for(register int i=2;i<=n;i++) ans+=dis[i];

}void

dijkstra_()

}for(register int i=2;i<=n;i++) ans+=dis[i];

}int

main()

dijkstra(),dijkstra_();cout

<

return0;

}

view code

1342 例4 1 最短路徑問題

題目描述 平面上有n個點 n 100 每個點的座標均在 10000 10000之間。其中的一些點之間有連線。若有連線,則表示可從乙個點到達另乙個點,即兩點間有通路,通路的距離為兩點間的直線距離。現在的任務是找出從一點到另一點之間的最短路徑。輸入 共n m 3行,其中 第一行為整數n。第2行到第n 1...

刷題 最短路 luogu P2384 最短路

給定n個點的帶權有向圖,求從1到n的路徑中邊權之積最小的簡單路徑。來自題解 首先考慮暴力維護,顯然極端資料就會炸裂,那麼用什麼來維護呢?由於log n m log n log m ok,這道題到此結束 我們只要把乘積轉化為對數,最後再還原就可以了,因為精度要求,所以還是記錄路徑好些。include ...

luogu P1144 最短路計數

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。輸入格式 輸入第一行包含2個正整數n,m,為圖的頂點數與邊數。接下來m行,每行兩個正整數x,y,表示有一條頂點x連向頂點y的邊,請注意可能有自環與重邊。輸出格式 輸出包括n行,每行乙個非負整數,第i行輸...