博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dijkstra 单源最短路
阅读量:4207 次
发布时间:2019-05-26

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

#include 
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#define lowbit(x) (x&-x)#define e exp(1.0)#define eps 1e-8//ios::sync_with_stdio(false);// auto start = clock();// cout << (clock()-start)/(double)CLOCKS_PER_SEC<
E[MAXN]进行初始化后加边 */const int INF=0x3f3f3f3f;const int MAXN=1000010;struct qnode{ int v; int c; qnode(int _v=0,int _c=0):v(_v),c(_c){} bool operator <(const qnode &r)const { return c>r.c; }};struct Edge{ int v,cost; Edge(int _v=0,int _cost=0):v(_v),cost(_cost){}};vector
E[MAXN];bool vis[MAXN];int dist[MAXN];void Dijkstra(int n,int start)//点的编号从1开始{ memset(vis,false,sizeof(vis)); for(int i=1;i<=n;i++)dist[i]=INF; priority_queue
que; while(!que.empty())que.pop(); dist[start]=0; que.push(qnode(start,0)); qnode tmp; while(!que.empty()) { tmp=que.top(); que.pop(); int u=tmp.v; if(vis[u])continue; vis[u]=true; for(int i=0;i
dist[u]+cost) { dist[v]=dist[u]+cost; que.push(qnode(v,dist[v])); } } }}void addedge(int u,int v,int w){ E[u].push_back(Edge(v,w));}int main()//刘哲{ int n,m;//n条边,m个点 cin>>n>>m; for(int i=0;i
>a>>b>>c; addedge(a,b,c); } Dijkstra(n,1); cout<<"1到各点的距离为:"; for(int i=2;i<=n;i++)cout<
<<' '; cout<

转载地址:http://teali.baihongyu.com/

你可能感兴趣的文章
ZipUtils 压缩工具包
查看>>
JAVA 线程之守护线程Daemon Thread
查看>>
JAVA 线程之内存可见性
查看>>
JAVA 线程之带有返回值的Callable和Future
查看>>
JAVA 多线程学习资源
查看>>
JNI HelloWorld的例子
查看>>
JAVA 网络编程
查看>>
JAVA 反射机制详解
查看>>
JAVA 读取Properties配置文件
查看>>
JavaWeb 使用Intellij IDEA部署Web项目出现JmxAdminException
查看>>
Maven 使用Intellij IDEA部署添加Maven Module出现 'pom.xml' already exists in VFS
查看>>
Git .gitignore文件比较完善的写法
查看>>
JavaWeb 提交中文数据乱码问题总结
查看>>
JavaWeb forward与sendRedirect区别
查看>>
JavaWeb 报错The absolute uri: http://java.sun.com/jsp/jstl/core cannot be resolved in either web.xml
查看>>
JavaWeb getParameter和getAttribute的区别
查看>>
JavaWeb jsp内置对象与servlet对应关系
查看>>
Spring 之依赖注入DI
查看>>
Spring 注解总结
查看>>
Spring 面向切面编程AOP
查看>>