• BZOJ1491|社交网络|Floyd


    Description


    Input


    Output
    输出文件包括n 行,每行一个实数,精确到小数点后3 位。第i 行的实数表 示结点i 在社交网络中的重要程度。
    Sample Input
    4 4
    1 2 1
    2 3 1
    3 4 1
    4 1 1
    Sample Output
    1.000
    1.000
    1.000
    1.000
    HINT


    为1

    分析:一看范围就笑了,Floyd不解释。

    #include<iostream>
    #include<cstdio>
    #include<cstdlib>
    using namespace std;
    
    double map[101][101];
    double a[101][101];
    double ans[101];
    
    int main()
    {
        int n,m;
        cin >> n >> m;
        for(int i=1; i<=n; i++)
           for(int j=1; j<=n; j++)
              map[i][j]=1e15;
        for (int i=1; i<=m; i++) 
        {
            int x,y;
            double z;         
            scanf("%d%d%lf",&x,&y,&z);
            map[x][y]=map[y][x]=z;
            a[x][y]=a[y][x]=1;
        }
          for (int k=1; k<=n; k++)
           for(int i=1; i<=n; i++)
              for (int j=1; j<=n; j++)
              {
                 if (map[i][k]+map[k][j]<map[i][j]) { map[i][j]=map[i][k]+map[k][j]; a[i][j]=0; }
                 if (map[i][k]+map[k][j]==map[i][j]) a[i][j]+=a[i][k]*a[k][j];
              }
        for (int i=1; i<=n; i++) a[i][i]=0;
        for (int k=1; k<=n; k++)
            for (int i=1; i<=n; i++)
                for (int j=1; j<=n; j++)
                   if (map[i][k]+map[k][j]==map[i][j] && a[i][j]>0) ans[k]+=a[i][k]*a[k][j]/a[i][j];
        for (int i=1; i<=n; i++) printf("%.3lf
    ",ans[i]);
        system("pause");
        return 0;
    }
  • 相关阅读:
    IIs实验,中间件漏洞
    sql注入2
    sql注入1
    莫比乌斯函数,数论中的战斗机
    test2
    test
    素数判定随机算法
    Nginx for windows 访问路径包含中文
    数组元素循环右移
    经典面试题 之 数组的循环右移
  • 原文地址:https://www.cnblogs.com/Shymuel/p/4647628.html
Copyright © 2020-2023  润新知