博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
POJ1734【Floyd求最小环板子】
阅读量:4560 次
发布时间:2019-06-08

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

题意:给定一个N个点的无向图,求其中的最小的环。输出路径。

其实这个板子我还有不理解的地方。输出路径的方法值得学习。

#include
#include
#include
#define MAX 100+10#define INF 0x3f3f3f3fusing namespace std;int n, m;int map[MAX][MAX];int dis[MAX][MAX];int pre[MAX][MAX];int res[MAX];int tmp;void Getpath(int i, int j, int k) { tmp = 0; while (j != i) { res[tmp++] = j; j = pre[i][j]; } res[tmp++] = i; res[tmp++] = k;}void Floyd() { int ans = INF; for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) dis[i][j] = map[i][j]; } for (int k = 1; k <= n; k++) { for (int i = 1; i < k; i++) {//为什么要小于k for (int j = i + 1; j < k; j++) {//为什么要小于k if (map[k][j] < INF && map[k][i] < INF && dis[i][j]
map[k][i] + map[k][j] + dis[i][j]) { ans = dis[i][j] + map[k][j] + map[k][i]; Getpath(i, j, k); } } } for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) { if (dis[i][k] + dis[k][j] < dis[i][j] && dis[i][k] < INF && dis[j][k] < INF) { dis[i][j] = dis[i][k] + dis[k][j]; pre[i][j] = pre[k][j]; pre[j][i] = pre[k][i]; } } } } if (ans == INF) { printf("No solution.\n"); } else { for (int i = 0; i < tmp; i++) printf("%d%c", res[i], i == tmp - 1 ? '\n' : ' '); }}int main(void) { while (~scanf("%d%d", &n, &m)) { for (int i = 1; i <= n; i++) { for (int j = 1; j <= n; j++) if (i == j) map[i][j] = 0; else map[i][j] = INF; } for (int i = 1; i <= m; i++) { int a, b, d; scanf("%d%d%d", &a, &b, &d); if (map[a][b] > d) { map[a][b] = d; map[b][a] = d; pre[a][b] = a; pre[b][a] = b; } } Floyd(); } system("pause"); return 0;}

转载于:https://www.cnblogs.com/tennant/p/8865306.html

你可能感兴趣的文章
Linux Kernel 4.21已更新:优化AMD 7nm Zen2架构
查看>>
腾讯2016编程笔试题
查看>>
HTML的行内元素与块级元素的区别?
查看>>
Linux系统硬软信息
查看>>
MSComm函数说明(来自网络)
查看>>
使用正确的筛选参数来提高查询性能
查看>>
STM32 管脚重定义
查看>>
山东理工大学第七届ACM校赛-经济节约 分类: 比赛 ...
查看>>
链表相关操作:创建链表、遍历链表、求链表长度、链表中删除一个节点、链表中插入一个节点、反转单链表...
查看>>
ZOJ FatMouse' Trade 贪心
查看>>
音乐播放器
查看>>
SQL COOKBOOK (Ch.1-10)
查看>>
创建数组
查看>>
dict使用
查看>>
[转] 移动平台Html5的viewport使用经验
查看>>
ASP.NET MVC的帮助类HtmlHelper和UrlHelper
查看>>
《Python数据科学手册》第五章机器学习的笔记
查看>>
ubuntu16.04 配置爬虫环境
查看>>
Centos7,PHP7安装swoole
查看>>
02_ListActive中响应事件 并LogCat输出
查看>>