跟hdu1688一樣的求次最短路。**上有詳細注釋。
/*
題意:給你n個點m條有向邊,開始點s,終點e,求 s到e的次最短路,輸出次最短路的長度和條數
*/#include#include#include#includeusing namespace std;
#define max 1100
#define inf 999999999
struct edge
;vectoredges;
vectorg[max];
int m,n;
int dis[max][2];
int vis[max][2];
int cnt[max][2];
int s,e;
void addedge(int x,int y,int w)
; edges.push_back(a);
g[x].push_back(edges.size()-1);
}void dij(int x,int y)
dis[x][0]=0;
cnt[x][0]=1;
memset(vis,0,sizeof(vis));
for(int i=1;i<=n*2;i++)//最多要迴圈2*n次,求最短路勁就迴圈這麼多次,還有個次最短路,就當然是兩倍啦
else if (!vis[j][1]&&min>dis[j][1])
}if(u==-1) break;
vis[u][flag]=1;
for(int j=0;jelse if(min+v.w==dis[v.to][0])//等於最短路
else if(min+v.w==dis[v.to][1])//等於次最短路
else if(min+v.w}
}printf("%d %d\n",dis[e][1],cnt[e][1]);
}int main()
edges.clear();
for(int i=1;i<=m;i++)
dij(s,e);
}}
HDU 2544 最短路 最短路
最近複習了最短路徑的演算法,就寫了4個版本的測試。正好是模板題,就果斷a之。dijkstar版本 include include include include include include includeusing namespace std define n 110 define max 99...
hdu 2544 最短路(最短路)
time limit1000 ms memory limit32768 kb 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input輸入...
HDU2544最短路(最短路徑)
description 在每年的校賽裡,所有進入決賽的同學都會獲得一件很漂亮的t shirt。但是每當我們的工作人員把上百件的衣服從商店運回到賽場的時候,卻是非常累的!所以現在他們想要尋找最短的從商店到賽場的路線,你可以幫助他們嗎?input 輸入包括多組資料。每組資料第一行是兩個整數n m n 1...