zoukankan      html  css  js  c++  java
  • POJ 1847 Floyd_wshall算法

    前面用dijstra写过了。但是捏。数据很小。也可以用Floyd来写。

    注意题目里给出的是有向的权值。

    附代码:
    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    #define inf 0x1f1f1f1f
    using namespace std;

    int n, a, b;
    int num;
    int dis[210][210];
    int i, j, k;

    int main()
    {
        while (cin >> n >> a >> b)
        {
            memset(dis, inf, sizeof(dis));
            for (i=1; i<=n; ++i)
            {
                int t;
                cin >> num;
                if (num == 0) continue;
                cin >> t;
                dis[i][t] = 0;    // 默认指向是第一个。
                //dis[t][i] = 0;         // 单向的。给出的是从i到t的权值。
                for (j=2; j<=num; ++j)
                {
                   cin >> t;
                   //dis[t][i] = 1;
                   dis[i][t] = 1;
                }
            }
            for (k=1; k<=n; ++k)
            {
                for (i=1; i<=n; ++i)
                {
                    for (j=1; j<=n; ++j)
                    {
                        if (dis[i][j] > dis[i][k] + dis[k][j])
                        dis[i][j] = dis[i][k] + dis[k][j];
                    }
                }
            }
            if (dis[a][b] != inf)
            cout << dis[a][b] << endl;
            else cout << -1 << endl;
        }
        return 0;
    }

  • 相关阅读:
    Certificate、Provisioning Profile、App ID
    boundingRectWithSize
    IOS照片框架
    UIlabel 属性text
    UIMenuController的使用,对UILabel拷贝以及定制菜单
    iOS 自定义emoji表情键盘
    IOS第三方字体
    IOS 验证码
    网上收集的以及自己总结的iOS开发技巧
    给自己一个坚持下去的理由
  • 原文地址:https://www.cnblogs.com/icode-girl/p/4586595.html
Copyright © 2011-2022 走看看