PAT 演算法模版 Dijkstra pre陣列

2021-10-07 08:37:44 字數 840 閱讀 9124

/

寫乙個經典 dijkstra + pre陣列 結合的演算法模板。

解決 「第一條件最優下選擇第二條件最優」 的問題

/

#include// 系統資源

vector> g;

vector> pre;

vectorpointvalue;

// dfs的判斷條件

vectortemppath;

vectorbestpath;

int bestvalue ;

int tempvalue ;

// 出發點 和 終點

int from , go ;

// 選擇更優【條件自定】

void dfs(int nowpoint)

}else

}// 最終都需要原路返回。。

temppath.pop_back();

tempvalue-=pointvalue[nowpoint];

}// 找到單源路徑陣列

vectordijst(int s)

// 這裡找到本輪可以到達的本次的最短距離點【同時這個點,未成為過最短距離中續點!!】

if(u==-1)return -1;

// u點成為最短距離中續點

vis[u] = true;

// 開始更新最短距離

for(int j = 0 ; j < len ; j++)else if(mindis[u] + g[u][j] == mindis[j])}}

return mindis;

}int main()

HDOJ 最短路 Dijkstra模版

最短路 dijkstra演算法 模版 hdoj include stdio.h include string.h define max 99999 int road 110 110 i,j,k,s 110 dist 110 int n,m void dijkstra int begin int ma...

PAT甲級1003題解 Dijkstra

解題步驟 1.初始化 設定mat存放點之間的距離,vis存放點的選取情況,people存放初始時每個城市的人數,man存放到達每個城市的救援隊的最多的人數,num存放到達每個城市的最多的人數 在最短路徑的基礎之上 dist存放從起點開始到達每個城市的最短的路徑 隨著每次選取點而更新 2.核心演算法 ...

Dijkstra樸素模版 非優先佇列優化

const int inf 0x3fffffff const int v 200 int dijkstra int map v int start,int end,int n map為臨界矩陣,n為矩陣大小 final i final start map start i 0?inf map star...