Dijkstra模板
来源:互联网 发布:志愿者数据库 编辑:程序博客网 时间:2024/05/22 11:34
输入:
N个顶点
点u,点v以及u->v的权值
输入以-1 -1 -1结束
输出:
点0到点1~n-1的最短路径长度以及路径
————————————————————集训11.1的分割线————————————————————
代码如下:
/*ID: j.sure.1PROG:LANG: C++*//****************************************/#include <cstdio>#include <cstdlib>#include <cstring>#include <algorithm>#include <cmath>#include <stack>#include <queue>#include <vector>#include <map>#include <string>#include <iostream>#define INF 0x7f7f7f7fusing namespace std;/****************************************/const int N = 20;int n, G[N][N], dis[N], fa[N];bool vis[N];void Dijkstra(){memset(vis, 0, sizeof(vis));memset(dis, 0x7f, sizeof(dis));dis[0] = 0;int cur = 0;for(int i = 0; i < n-1; i++) {int mini = INF;for(int k = 0; k < n; k++) if(!vis[k]) {if(dis[k] < mini) {mini = dis[k];cur = k;}}vis[cur] = true;for(int k = 0; k < n; k++) if(!vis[k]) {if(dis[k] > dis[cur] + G[cur][k]) {dis[k] = dis[cur] + G[cur][k];fa[k] = cur;}}}}int main(){#ifdef J_Sure// freopen(".in", "r", stdin);// freopen(".out", "w", stdout);#endifscanf("%d", &n);int u, v, w;while(scanf("%d%d%d", &u, &v, &w)!=EOF) {if(u == -1) break;G[u][v] = w;}for(int i = 0; i < n; i++) {for(int j = 0; j < n; j++) {if(i == j)G[i][j] = 0;else if (!G[i][j])G[i][j] = INF;}}Dijkstra();int dir[N];fa[0] = 0;for(int i = 1; i < n; i++) {int x = i, cnt = 0;printf("%d\t", dis[i]);while(x != fa[x]) {dir[cnt++] = x;x = fa[x];}dir[cnt] = 0;for(int k = cnt; k > 0; k--) {printf("%d->", dir[k]);}printf("%d\n", dir[0]);} return 0;}
0 0
- dijkstra 模板
- dijkstra 模板
- Dijkstra模板
- dijkstra模板
- dijkstra模板
- Dijkstra模板
- (Dijkstra模板)
- Dijkstra模板
- Dijkstra模板
- Dijkstra 模板
- Dijkstra模板
- dijkstra 模板
- dijkstra模板
- dijkstra模板
- dijkstra模板
- [模板]Dijkstra
- dijkstra 模板
- 模板 Dijkstra
- 关于几个报错的解决
- 测试驱动开发TDD(四)Google Test系列(目录)
- CvScalar结构
- 中序表达式转换成后序表达式问题(栈的应用)
- hduoj1028!【母函数】
- Dijkstra模板
- js错误 unterminated string literal
- xcode 在一个界面中打开多个子界面,实现跳转不影响
- DontDestroyOnLoad 重复实例化
- Binary Tree Level Order Traversal
- [Android] Android开发优化之——使用软引用和弱引用
- 身在户外该如何使用求生哨
- Nginx+PHP-FPM的优化技巧(2)
- es的query string问题