Dijskra(有误)
来源:互联网 发布:神武2白无忧优化 编辑:程序博客网 时间:2024/05/01 13:40
#include<vector>#include<iostream>using namespace std;//邻接链表中的元素struct E{ int next; int Weight;};vector<E> edge[101];bool mark[101]; //标记int Dis[101]; //距离int main(){ int n, m; while (cin >> n >> m && n > 0 && m > 0) { //初始化邻接链表 for (int i = 1; i <= n; i++) edge[i].clear(); //读数据 while (m--) { int a, b, c; cin >> a >> b >> c; E tmp; tmp.Weight = c; tmp.next = b; edge[a].push_back(tmp); tmp.next = a; edge[b].push_back(tmp); } //初始化 for (int i = 1; i <= n; i++) { Dis[i] = -1; mark[i] = false; } Dis[1] = 0; mark[1] = true; int Newp = 1; //Dijskra for (int i = 1; i < n; i++) //遍历剩下的点 { //更新集合K相邻节点距离 for (size_t j = 0; j < edge[Newp].size(); j++) { int t = edge[Newp][j].next; int c = edge[Newp][j].Weight; if (mark[t] = true) continue; if (Dis[t] == -1 || Dis[t]>Dis[Newp] + c) Dis[t] = Dis[Newp] + c; } int min = 123123123; //找到新加入的节点 for (int j = 1; j <= n; j++) { if (mark[j] == true) continue; if (Dis[j] == -1) continue; if (Dis[j] < min) { min = Dis[j]; Newp = j; } } mark[Newp] = true; } cout << Dis[n] << endl; } return 0;}
0 0
- Dijskra(有误)
- strlen()有误的问题
- (有误)双向链表
- 单链表自我实践(可能有误)
- MultiByteToWideChar使用(核心编程描述有误)
- xcode4发布测试-打包(Archive),官方文档有误
- xcode4发布测试-打包(Archive),官方文档有误
- 网页有误 没有弹出alter()提示框
- POJ 2528(数据有误的线段树)
- Ubuntu Linux下android源码下载(原文有误,修改)
- xcode4发布测试-打包(Archive),官方文档有误
- 数据结构图篇(自己容易理解有误的地方)
- hd3635 Dragon Balls(之前题意翻译有误,已改正)
- JAVA中String重点(文中标点有误)
- UVA 10986 Sending email DIJSKRA(稀疏图)
- POJ 1062 最短路 dijskra + 枚举
- 浅谈最短路中的Dijskra算法
- Android学习之远程绑定调用service(文章有误,请勿阅读)
- 浅谈js之事件处理
- javascript学习实录 之五(节点操作)
- JAVA 学习第3天(2)
- javascript学习实录 之二(数组操作等等utils)
- android looper
- Dijskra(有误)
- 移动Web前端开发_横向UL以及自适应屏幕_div定位的方式居中
- Android核心基础-5.Android 数据存储与访问-3.使用Sqlite进行数据存储
- UVa 1556 - Disk Tree
- javascript学习实录 之一 -
- 极限方程式程序和27级存档_android
- OC 数字对象和字符串对象
- json-lib 的maven dependency
- Android模仿微信语音聊天功能