博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dijkstra队列优化矩阵版
阅读量:6815 次
发布时间:2019-06-26

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

#include 
#define INF 0x3f3f3f3f //定义一个很大的数using namespace std;const int maxn = 100 + 10;int vis[maxn];int mp[maxn][maxn];int v[maxn][maxn];int dis[maxn];int mon[maxn][maxn];int val[maxn];struct Node { int num; int val;// int sum; }node;priority_queue
q;bool operator < (Node a,Node b) { if(a.val = b.val) return a.num > b.num; return a.val > b.val; }int main() {// freopen("in.txt","r",stdin);// int total; int n,m; while(cin>>n>>m) { while(!q.empty()) q.pop();// memset(vis,0,sizeof(vis)); memset(mp,-1,sizeof(mp));// memset(mon,INF,sizeof(mon));// memset(v,0,sizeof(vis));// memset(dis,0,sizeof(dis)); for(int i = 0; i < m; i++) { int t1,t2,c,v; cin>>t1>>t2>>c; mp[t1][t2]=c; mon[t1][t2]=v;// v[a][b] = d; } for(int i = 2; i <= n; i++) { dis[i] = INF; } //1是起始点 dis[1] = 0; node.num = 1; node.val = 0;// node.sum = 0; q.push(node); while(!q.empty()) { for(int i = 2; i <= n; i++) { if(mp[q.top().num][i] != -1&&dis[i] > dis[q.top().num]+mp[q.top().num][i]) { dis[i] = dis[q.top().num] + mp[q.top().num][i]; node.num = i; node.val = dis[i]; q.push(node); } } q.pop(); } for(int i = 1; i <= n; i++) { printf("初始点到%d点的距离为%d\n",i,dis[i]); } } return 0; }

转载于:https://www.cnblogs.com/zhangmingzhao/p/7256636.html

你可能感兴趣的文章
shell脚本实现杨辉三角形
查看>>
ComponentOne 2019V1火热来袭!全面支持 Visual Studio 2019
查看>>
装了一款系统优化工具,如何从Mac上卸载MacBooster 7?
查看>>
使用符号表调试release程序
查看>>
Delphi 设置系统默认打印机
查看>>
AliOS Things网络适配框架 - SAL
查看>>
数组 将一个数组的元素和另一个素组的元素相加,然后赋给第三个数组
查看>>
Python常用模块汇总
查看>>
sa提开放系统下的虚拟新贵Virtualbox权技巧之xp_regwrite替换sethc.exe
查看>>
SpringBoot开发案例之整合Dubbo提供者(一)
查看>>
变态的程序
查看>>
腾讯抄你肿么办 ?
查看>>
java多线程的Fork/Join
查看>>
ftp 服务器的配置
查看>>
JavaScript的浏览器兼容性问题小结。
查看>>
Oracle Hint的用法
查看>>
Postfix邮件系统
查看>>
《编写可读代码的艺术》读书文摘--第一部分 表面层次的改进
查看>>
使用Nodejs创建基本的网站 Microblog--《Node.js开发指南》 3
查看>>
网管工作是否值得做下去?
查看>>