最短路徑 1030 兩重標尺下的最短路徑

2022-05-02 04:30:09 字數 1235 閱讀 7533

只要心裡有斯傑斯特拉,多少重標尺都是浮雲。

可以看到,進行多重標尺判斷的時候,可以用

if(dist[u]+g_dist[u][i]這樣的騷**來進行二重標尺的判斷。但是如果要記錄最短路徑條數或者其他騷操作,就不能這麼簡潔了。

完整**:

#include #include

#include

#include

#include

#include

#include

#include

#include

#include

#define i scanf

#define ol puts

#define o printf

#define f(a,b,c) for(a=b;a#define ff(a,b) for(a=0;a#define fg(a,b) for(a=b-1;a>=0;a--)

#define len 1010

#define max (1<<30)-1

#define v vectorusing

namespace

std;

intg_dist[len][len];

intg_cost[len][len];

intvis[len];

intdist[len];

intcost[len];

intpre[len];

intmain()

fill(dist,dist+len,max);

fill(cost,cost+len,max);

dist[s]=0

; cost[s]=0

; pre[s]=-1

;

while(1

)

if(u<0) break

; vis[u]=1

; ff(i,n)

if(!vis[i])}}

vector

path;

i=e;

while(i!=-1

) ff(i,path.size()) o(

"%d

",path[i]);

printf(

"%d %d\n

",dist[e],cost[e]) ;

return0;

}

A 最簡單的最短路 最短路徑

szu 2015 winter training day 6 a 最簡單的最短路 time limit 1000msmemory limit 32768kb64bit io format i64d i64u submit status practice hdu 1874 description 某省...

最詳細的最短路徑問題

floyd演算法 首先了解一下最短路徑 最短路徑就是有幾個頂點,已知有些頂點之間的距離,讓你求任意兩個頂點之間的最短距離 定義乙個二維陣列f 100 100 f陣列中存的就是任意兩點的距離,比如f i j 存的就是從i頂點到j頂點的距離 先理解簡單的 如果只有三個頂點 頂點1,頂點2,頂點3 那麼頂...

Flyod 演算法 兩兩之間的最短路徑

flyod 演算法 兩兩之間的最短路徑 動態規劃方法,通過相鄰矩陣,然後把最後的結果存在這麼乙個矩陣裡面,i,j include include using namespace std define m 301 define lim 200000000 int w m m d 2 m m void ...