问题描述

m个点, m条边, 求图中存在的路径最小的环

样例

Sample Input
5 7
1 4 1
1 3 300
3 1 10
1 2 16
2 3 100
2 5 15
5 3 20
Sample Output
1 3 5 2

思路
    用ans存最小环的距离,dis[i, j]存i 到 j 的最短路径, pass[i, j] 存 i 到 j 最短距离经过哪些点, path存最终的路径

代码

#include <iostream>
#include <cstring>
#include <algorithm>
#include <cstdio>
#include <vector>using namespace std;const int N = 110;int g[N][N], dis[N][N], pass[N][N];
vector<int> path;
int n, m, ans = 0x3f3f3f3f;void get_path(int x, int y)
{if (pass[x][y] == 0)return;get_path(x, pass[x][y]);path.push_back(pass[x][y]);get_path(pass[x][y], y);
}int main()
{cin >> n >> m;memset(g, 0x3f, sizeof g);for (int i = 0; i <= n; i++)g[i][i] = 0;for (int i = 1; i <= m; i++){int a, b, c;cin >> a >> b >> c;g[a][b] = g[b][a] = min(g[a][b], c);}memcpy(dis, g, sizeof g);for (int k = 1; k <= n; k++){for (int i = 1; i < k; i++)for (int j = i + 1; j < k; j++){if ((long long)dis[i][j] + g[i][k] + g[k][j] < ans){ans = dis[i][j] + g[i][k] + g[k][j];path.clear();path.push_back(i);get_path(i, j);path.push_back(j);path.push_back(k);}}for (int i = 1; i <= n; i++)for (int j = 1; j <= n; j++)if (dis[i][j] > dis[i][k] + dis[k][j]){dis[i][j] = dis[i][k] + dis[k][j];pass[i][j] = k;}}if (ans == 0x3f3f3f3f){puts("No solution.");}else{for (int i = 0; i < path.size(); i++)cout << path[i] << " ";cout << endl;}return 0;
}

POJ1734 Sightseeing trip floyd求最小环问题相关推荐

  1. 多源最短路径Floyd、Floyd求最小环【模板】

    Floyd算法:用来找出每对点之间的最短距离.图可以是无向图,也可以是有向图,边权可为正,也可以为负,唯一要求是不能有负环.  1.初始化:将Map[][]中的数据复制到Dist[][]中作为每对顶点 ...

  2. 2017百度之星程序设计大赛 - 资格赛【1001 Floyd求最小环 1002 歪解(并查集),1003 完全背包 1004 01背包 1005 打表找规律+卡特兰数】...

    度度熊保护村庄 Accepts: 13 Submissions: 488 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/3276 ...

  3. floyd求最小环 模板

    http://www.cnblogs.com/Yz81128/archive/2012/08/15/2640940.html 求最小环 floyd求最小环 2011-08-14 9:42 1 定义: ...

  4. 最小环 floyd java_干货|Floyd求最小环(CF Shortest Cycle)

    作者:Water_Fox 来源:牛客网 You are given nn integer numbers a1,a2,-,ana1,a2,-,an. Consider graph on nn node ...

  5. POJ1734(floyd求最小环的路径)

    题目:Sightseeing trip 题意:求一个图中最小环,输出路径. #include <iostream> #include <string.h> #include & ...

  6. floyd求最小环——poj1734Sightseeing trip

    题目链接 Description There is a travel agency in Adelton town on Zanzibar island. It has decided to offe ...

  7. hdu 1599(Floyd求最小环)

    find the mincost route Time Limit: 1000/2000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/O ...

  8. poj 1734 Sightseeing trip(floyd 拓展 求最小环)

    对于floyd 拓展为什么可以判断 出最小环还是不是太理解 苟且 先贴下模版吧 感谢:心_随_梦_翔 的分析 http://hi.baidu.com/%D0%C4_%CB%E6_%C3%CE_%CF% ...

  9. poj1734 Sightseeing trip[最小环]

    一个最小环裸题.最小环的两种求法dijkstra和Floyd直接参见这里我就是从这里学的,不想写了. 注意这里最重要的一个点是利用了Floyd的dp过程中路径上点不超过$k$这一性质,来枚举环上最大编 ...

最新文章

  1. oracle索引与mysql区别_MySQL和Oracle中的唯一性索引从差别(r12笔记第83天)
  2. TikTok上市无望?某大厂上海分公司跑路?
  3. mysql免安装版大小,mysql安装(免安装版,压缩版)
  4. 阿里开源Canal--①简介
  5. leetcode 调整数组顺序使奇数位于偶数前面
  6. 在Log4j2中更好地执行非日志记录器调用
  7. iOS LLDB console debug总结
  8. windows下环境变量配置后没生效,不重启电脑的解决办法
  9. Bootstrap table列内容过长,显示固定长度,超过内容隐藏
  10. Linux Suspend过程【转】
  11. 如何在云服务器上装系统吗,如何在云服务器上装系统吗
  12. WinForm列表控件美化
  13. 计算机java毕设_javaweb计算机毕设怎么做比较容易?
  14. Qt中配置OpenCV
  15. 实对称矩阵一定要用正交矩阵来对角化吗?
  16. 如何画出企业系统架构图
  17. Java进阶(七)Java加密技术之非对称加密算法RSA
  18. IntelliJ IDEA自动引入jar包
  19. 任意用户注册任意用户密码修改
  20. 手把手教你静态代码检查工具TscanCode安装与使用

热门文章

  1. 丝涟品牌诞生140年,发布2021全新品牌口号
  2. dex字符串解密_十一、Dex加解密
  3. laui中使用filed填充表格数据时隐藏表格中某一列filed不显示
  4. puzzle(0811)《无向路径规划》Relay Flip、提笔乾坤、无悔的足迹
  5. 源自中国顶级开源软件再下一城!向量数据库公司Zilliz完成6000万美元B+轮融资
  6. MTK6582资料帖和问题帖集合
  7. 信号与系统 一到五章 整理笔记
  8. el-form表单验证跳过指定项的验证
  9. 7天收到312个漏洞,涉及175个项目方,DVP开启区块链漏洞围剿计划
  10. 医学三维图像几种格式的区别