HDOJ 2544 最短路
来源:互联网 发布:iphone6s手机壳知乎 编辑:程序博客网 时间:2024/06/05 07:28
第一次用dijkstra .感觉就是动态规划啊,先找出当前图的最小距离,加入当前结点。在在此节点的基础上更新新的距离,其实真正理解了也是很好想的,刚开始数组地图开的小了map[100][100], 结果WA 了,数组开大点就好。
#include<cstdio>#include<cstdlib>#include<iostream>#include<algorithm>#include<vector>#include<cstring>using namespace std;#define maxint 100000#define maxsize 200int map[maxsize][maxsize];int dist[maxsize], prve[maxsize];int n;void dijkstra(int n, int v, int *dist, int *prve, int map[maxsize][maxsize]){ bool s[maxsize]; for(int i=1; i<=n; i++) { dist[i]= map[v][i]; s[i] = false; if(dist[i]==maxint) prve[i] = 0; else prve[i] = v; } s[v]=1; dist[v] = 0; for(int i=2; i<=n; i++) { int temp = maxint; int u = v; for(int j=1; j<=n; j++) if(!s[j]&&dist[j]<temp) { temp = dist[j]; u = j; } s[u] = true; for(int j=1; j<=n; j++) if(!s[j]&&dist[j]>dist[u]+map[j][u]) { dist[j] = dist[u]+map[j][u]; prve[j] = u; } }}//查找路径 int search(int v, int u, int *prve){ int q[maxsize]; int tot =1; q[tot] = u; int temp = prve[u]; while(temp!=v) { q[tot]=temp; tot++; temp = prve[temp]; } q[tot] = v; for(int i=tot; i>=1; i--) { if(i!=1) cout<<q[i]<<"->"; else cout<<q[i]<<endl; }}int main(){ //freopen("input.txt","r",stdin); int n,line; while(cin>>n>>line) { if(!n&&!line)break; int v, u, w; for(int i=1; i<=n; i++) for(int j=1; j<=n; j++) map[i][j] = maxint; while(line--) { cin>>v>>u>>w; map[v][u] = w; map[u][v] = w; } for(int i=1; i<=n; i++) dist[i] = maxint; dijkstra(n, 1, dist, prve, map); cout<<dist[n]<<endl; //cout << "源点到最后一个顶点的路径为: "; //search(1, n, prve); } //system("pause"); return 0;}
- HDOJ 2544 最短路
- HDOJ 2544 最短路
- HDOJ-2544最短路
- HDOJ 2544 最短路
- HDOJ 2544 最短路
- hdoj 2544 最短路
- hdoj 2544 最短路
- HDOJ-2544最短路
- hdoj 2544 最短路
- HDOJ--2544--最短路
- hdoj 2544 最短路
- hdoj 2544 最短路
- HDOJ 2544 最短路
- hdoj 2544 最短路
- hdoj 2544 最短路
- hdoj-2544-最短路
- HDOJ -- 2544最短路
- HDOJ 2544 最短路
- 原码转补码
- Android的简单介绍
- sigmoid函数详解
- C#之字符串格式化操作...
- 用户权限
- HDOJ 2544 最短路
- 第五周任务二(分数类)
- wine 1.2 的使用介绍和在ubuntu10.04 下安装QQ
- 视图控制器之间的切换
- C#之DataGridView判断用户选择的是哪一行...
- 存储过程
- Tiny6410 NFS启动
- 二维码的一些资料
- 统计字符串中字符出现次数以及排序