zoukankan      html  css  js  c++  java
  • 最小环问题

              最小环问题

    (摘自 qyf 童鞋的博客 :http://www.cnblogs.com/wsdestdq/p/6719826.html  )

    最小环问题是指:在图中找出一个环,并使该环上边的权值和最小

    #include<iostream>
    #include<cstdio>
    using namespace std;
    const int maxn = 9999;
    int n, m, u, v, w, ans;
    int g[maxn][maxn], dis[maxn][maxn];
    
    int main() {
        cin >> n >> m;
        for(int i = 1; i <= n; i++)     //初始化
            for(int j = 1; j <= n; j++)
                g[i][j] = maxn;
        for(int i = 1; i <= m; i++) {     //双向图
            cin >> u >> v >> w;
            g[u][v] = w;
            g[v][u] = w;
        }
        for(int i = 1; i <= n; i++)
            for(int j = 1; j <= n; j++)
                dis[i][j] = g[i][j];
        ans = maxn;
        for(int k = 1; k <= n; k++) {     //Floyed算法
            for(int i = 1; i <= n-1; i++)
                for(int j = i+1; j <= n-1; j++)
                    ans=min(ans, dis[i][j]+g[i][k]+g[k][j]);      //找最小值
            for(int i = 1; i <= n; i++)     //松弛
                for(int j = 1; j <= n; j++)
                    dis[i][j] = min(dis[i][j], dis[i][k]+dis[k][j]);
        }
        cout << ans << endl;
        return 0;
    }
  • 相关阅读:
    人事面试13
    人事面试测试篇1
    人事面试16
    人事面试15
    人事面试测试篇3
    人事面试测试篇2
    人事面试14
    Oracle Compile 编译 无效对象
    Oracle 移动数据文件的操作方法
    Oracle 9i 从9.2.0.1升级到 9.2.0.6 步骤
  • 原文地址:https://www.cnblogs.com/v-vip/p/8728237.html
Copyright © 2011-2022 走看看