最短路(Bellman) Hdu1874暢通工程式

2022-09-01 16:00:28 字數 912 閱讀 7205

題目:某省自從實行了很多年的暢通工程計畫後,終於修建了很多路。不過路多了也不好,每次要從乙個城鎮到另乙個城鎮時,都有許多種道路方案可以選擇,而某些方案要比另一些方案行走的距離要短很多。這讓行人很困擾。

現在,已知起點和終點,請你計算出要從起點到終點,最短需要行走多少距離。

input

本題目包含多組資料,請處理到檔案結束。

每組資料第一行包含兩個正整數n和m(0output

對於每組資料,請在一行裡輸出最短需要行走的距離。如果不存在從s到t的路線,就輸出-1.

題目理解:即求最短路徑

#include #include 

using

namespace

std;

const

int inf = 0x3f3f3f3f

;const

int maxn = 205

;struct

edgee[maxn];

intn,m;      //我實在不知道為什麼將此行全域性變數的定義放在結構體定義前面會超時

int d[maxn];//

用d陣列存起點到餘下每個節點的距離

void bellman(int

s) }

if(!update) break;//如果發現d陣列中的值已經是最短的路了,則跳出}}

intmain();////將該條邊的起點,終點,長度存入圖中

e[i+m]=(edge);//

將該無向圖存為有向圖

}

int s,t;scanf("

%d%d

",&s,&t);

bellman(s);

if(d[t]==inf)

else

}return0;

}

最短路 最短路徑問題

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

最短路徑演算法 最短路

在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 100,m 10000 n...

最短路(最短路之積)

首先考慮暴力維護,顯然極端資料就會炸裂,那麼用什麼來維護呢?考慮乙個很 nb的公式log n m log n log m ok,這道題到此結束 我們只要把乘積轉化為對數,最後再還原就可以了,也不用考慮精度問題,本蒟蒻試著用pow,然後它死了。includeusing namespace std co...