題目是hdu-1688
傳送門
模板:
#include#define n 1005
#define m 10005
#define ll long long
#define inf 0x3f3f3f3f
using namespace std;
int t,c,s,f,n,m;
int head[n],dis[n][2],num[n][2];//0表示最短路,1表示次短路,分別表示最短路次短路的距離,最短路次短路有多少條
bool vis[n][2];//0表示最短路是否走過,1表示次短路是否走過
struct ljh
e[m];
struct xqy
bool operator < (const xqy&a)const
else if(dis[nex][0]==temp)//等於最短路
else if(dis[nex][1]>temp)//比次短路小
else if(dis[nex][1]==temp)
} }}
int main()
scanf("%d%d",&s,&f);
dij(s);
// cout
else printf("%d\n",num[f][0]);
} return 0;
}
計算最短路和次短路條數
題目 題意 在給定有向圖中查詢最短路與次短路,如果 最短路 1 次短路 則輸出 最短路條數 次短路條數 否則只輸出最短路條數。思路 在最短路的鬆弛操作上做些判斷和記錄即可,具體看 吧 有注釋 include include include include include include includ...
最短路與次短路計數
poj 3464 問最短路的條數 比最短路權值大 1 的條數 做法 比較一下次短路和最短路的值 若次短路恰好比最短路大1,答案為最短路 次短路條數,否則答案就是最短路條數 1 include2 const int inf 0x3f3f3f3f 3 class count short path e m...
POJ 3464 最短路徑與次短路徑的條數
幾天沒有做題了。想好好的整合一下知識。不然的話真的採用題海戰術這樣絕對是不明智的!鄙人目前對圖論,組合數學,計算幾何感興趣。dp還好 做題做了一道次短路徑的題。以前也想過這樣的解法並且也還碼過 很明顯的wa了。這次借鑑了網上的做法,並個人做了認真的思考。看來我對dij的演算法理解還是不是很深啊!雖然...