• POJ 2263 最短路Floyd_warshall算法


    灰常开心的用Floyd变形写出来了。额。对米来说还是牺牲了一定的脑细胞的。然而。我发现。大牛们还可以神奇的用Kruskal求最大生成树的最小权值来写。也可以用Dijkatra变形来写。T_T。。。。555.。。。闪到米的24K钛合金防爆....

    附Floyd代码:(一次AC哟)

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #include<string>
    #include<map>
    #define inf 0x1f1f1f1f
    using namespace std;

    int mapp[210][210];   // 两点之间的权值
    int n, r, val;
    char st[40], ed[40];
    int tot = 0;
    int i, j, k;
    int ans[210][210];  // 两点之间的最小段的长度

    int main()
    {
        int cnt = 0;
        while (cin >> n >> r)
        {
            cnt++;
            map<string, int>m;
            tot = 1;
            m.clear();
            memset(mapp, inf, sizeof(mapp));
            if (n == 0 && r == 0)
            break;
            memset(ans, 0, sizeof(ans));
            for (int i=0; i<r; ++i)
            {
                cin >> st >> ed >> val;
                if (!m[st]) m[st] = tot++;
                if (!m[ed]) m[ed] = tot++;
                mapp[m[st]][m[ed]] = val;
                mapp[m[ed]][m[st]] = val;
                ans[m[st]][m[ed]] = val;
                ans[m[ed]][m[st]] = val;
            }
            for (k=1; k<=n; ++k)
            {
                for (i=1; i<=n; ++i)
                {
                    for (j=1; j<=n; ++j)
                    {
                        if (mapp[i][k] != inf && mapp[k][j] != inf && i!=j && j!=k && i!=k)
                        {
                            mapp[i][j] = mapp[i][k] + mapp[k][j];
                            ans[i][j] = max(ans[i][j], min(ans[i][k], ans[k][j])); // 这里刚开始用了min(mapp[i][k], mapp[k][j]).NO .
                            ans[j][i] = ans[i][j];
                        }
                    }
                }
            }
            cin >> st >> ed;
            cout << "Scenario #" << cnt << endl;
            cout << ans[m[st]][m[ed]] << ' ' << "tons" << endl;
            cout << endl;
        }
        return 0;
    }

  • 相关阅读:
    (10)C#静态方法,静态字段,静态类,匿名类
    (9)C#类
    (8)C#字符串
    (7)C#流程控制
    (6)C#方法,作用域,方法重载
    (5)C#运算符
    各个品牌主板快速开机启动
    口袋的天空
    繁忙的都市
    取水
  • 原文地址:https://www.cnblogs.com/icode-girl/p/4586844.html
Copyright © 2020-2023  润新知