最短路 部分例題

2021-09-25 19:58:11 字數 1103 閱讀 4558

記錄一下最短路的一些經典例題,當做是模板來用吧。

例題:title:agri-net

#include #include #include #include #include#include#define shuzu 101

int maxn=0x7fffffff;

using namespace std;

int prime()

} return maxlen;

}int main()

} for(int i=1;i<=m;i++)

printf("%d\n",prim());

} return 0;

}

例題title:silver cow party

#include #include #include #include using namespace std;

int n,m,x;

int maxn= 10000000;

int minn=-0x7fffffff;

int dis1[1005],dis2[1005];

char vis[1005];

void chushihua()

void dijkstra(int dis)

dis[x]=0;

while(1)

if(v == -1)

break;

vis[v]=1;

for(int j = 1; j <= n; j++)

}}int main()

dijkstra(dis1);

for(int i=1;i<=n;i++)

for(int j=1;j最短路差不多是乙個意思,問的就是從a到b之間最短的路徑。

首先初始化dis陣列為非常大的值,它記錄的是從a到其他點的最小值。

第乙個大迴圈的意思是說,從a到另外點的距離有乙個最小值,記錄這個最小值的下標。

第二個迴圈的意思是說從從a到一點c,通過c間接到b有乙個更小的距離。

舉個例子就是說,a->b 100公尺,a->c 50公尺,c->b 20公尺,這時候第二次迴圈更改為dis[b] = 50+20=70;

寫的比較水,大概就是這個意思。

例題題解 最短路計數

給出乙個n個頂點m條邊的無向無權圖,頂點編號為1 n。問從頂點1開始,到其他每個點的最短路有幾條。從最基礎的dj思考 迭代式進行迭代定然滿足d p va l np d p vald p v alnp 其中p pp表示當前迴圈的點,npnp np表示與p pp相連的新列舉的點。因此我們在這一處轉移做變...

Dijkstra演算法 最短路徑 (部分)

void dijkstra int n,int v,int dist,int prev,int c maxnum maxnum dist v 0 s v 1 依次將未放入s集合的結點中,取dist最小值的結點,放入結合s中 一旦s包含了所有v中頂點,dist就記錄了從源點到所有其他頂點之間的最短路徑...

差分約束 最短路 經典例題 love

題目描述 吶,貴樹真的是乙個很帥的男孩子呢,所以好多女孩都給他寫至少一封 了情書。那每個女孩給了貴樹寫了多少情書呢?我們不知道,但是我們知 道一些女孩子寫情書數量的關係,你的任務是推斷出貴樹最少受到了多少 情書。輸入檔案 輸入的第一行為兩個整數 n,k,表示一共 n 個女孩,知道 k 對關係 接下來...