博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
hdu 2680 (Dijkstra)
阅读量:7164 次
发布时间:2019-06-29

本文共 1124 字,大约阅读时间需要 3 分钟。

快放暑假了,训练又要开始了。先从熟悉的图论开始做吧。

题意:一张有向图中有若干起点一个终点,让你算最短路,方法很简单只需人为加一个起点指向所有起点让后距离为0即可。

代码如下:

1 #include 
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9 #include
10 #define MP(a, b) make_pair(a, b)11 #define PB(a) push_back(a)12 using namespace std;13 14 typedef pair
pii;15 const int LEN = 1010;16 const int INF = 0x3f3f3f3f;17 vector
Map[LEN];18 int n, m, dis[LEN];19 20 void Dijkstra(int vex){21 int vis[LEN] = { 0};22 priority_queue
, greater
> q;23 for(int i=0; i<=n; i++) dis[i] = INF;24 dis[vex] = 0;25 q.push(MP(dis[vex], vex));26 while(!q.empty()){27 pii nvex = q.top(); q.pop();28 int nv = nvex.second;29 if(vis[nv]) continue;30 vis[nv] = 1;31 for(int i=0; i
dis[nv] + y){34 dis[x] = dis[nv] + y;35 q.push(MP(dis[x], x));36 } 37 }38 }39 }40 41 int main()42 {43 // freopen("in.txt", "r", stdin);44 45 int a, b, c, tn, s, e;46 while(scanf("%d%d%d", &n, &m, &e)!=EOF){47 for(int i=0; i
View Code

 

转载于:https://www.cnblogs.com/shu-xiaohao/p/3789222.html

你可能感兴趣的文章