zoukankan      html  css  js  c++  java
  • 最小环 Floyd

      只适用于无向图,而且复杂度有点高O(n^3),但是我还是蛮喜欢这个算法的qwq……

      简单易懂(或许这就是喜欢的原因>\<),就只给代码啦~  -^-

    #include<cstdio>
    #include<cstring>
    #include<iostream> 
    using namespace std;
    #define maxn 1e8
    int ans=maxn,g[100][100],d[100][100],n,m;
    int main()
    {
        scanf("%d%d",&n,&m);
        for(int i=1;i<=n;i++)
        for(int j=1;j<=n;j++)
        {
            g[i][j]=maxn;
            d[i][j]=maxn;
        } 
        for(int i=1;i<=m;i++)
        {
            int a,b,c;
            scanf("%d%d%d",&a,&b,&c);
            g[a][b]=c;
            g[b][a]=c;
            d[a][b]=c;
            d[b][a]=c;
        }
        for(int k=1;k<=n;k++)
        {
            for(int i=1;i<=k-1;i++)
            for(int j=i+1;j<=k-1;j++)
                ans=min(ans,d[i][j]+g[j][k]+g[k][i]);
            for(int i=1;i<=n;i++)
            for(int j=1;j<=n;j++)
                d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
        }
        printf("%d",ans);
        return 0;
    } 

      小注解:

        k可以理解为点,每一次只要考虑这个点有没有对现有的最优答案有益即可。

  • 相关阅读:
    ExcelDataReader read excel file
    DocumentFormat.OpenXml read excel file
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
    java高并发系列
  • 原文地址:https://www.cnblogs.com/popo-black-cat/p/10022425.html
Copyright © 2011-2022 走看看