题目链接:https://vjudge.net/problem/HYSBZ-1491

题目大意:中文题目,题意见题目

题目分析:由于数据量很小,可以考虑进行Floyd算法。

第一次进行Floyd算法,算出两点之间的最短路径,另外记录下这两点之间有多长条最短路走法。

第二场进行类似Floyd算法的方法,计算经过k点,是否可以走出最短路,如果可以的话,进行计算。

注意在两次统计计算的过程中,要用组合的方法,即num[i][j]=num[i][k]*num[k][j];

给出代码:

 #include <iostream>
 #include <cstdio>
 #include <queue>
 #include <cstring>
 #include <string>
 using namespace std;

 int n,m;
 +][+];
 +][+];
 int inf=0x3f3f3f;
 ];
 int main()
 {
     cin>>n>>m;
     memset(node,inf,sizeof(node));
     //memset(node1,0,sizeof(node1));
     // memset(mark,0,sizeof(mark));
     ; i<m; i++)
     {
         int a,b,c;
         scanf("%d%d%d",&a,&b,&c);
         node[a][b]=c;
         node[b][a]=c;
         node1[a][b]=;
         node1[b][a]=;
     }
     // for(int i=1; i<=n; i++)
     //      node[i][i]=0;
   /*  for(int i=1; i<=n; i++)
     {
         for(int j=1; j<=n; j++)
         {
             cout<<node[i][j]<<" ";
         }
         cout<<endl;
     }
     cout<<endl;*/
     ; k<=n; k++)
     {
         ; i<=n; i++)
         {
             ; j<=n; j++)
             {
                 if(k!=i&&k!=j&&i!=j)
                 {
                     if(node[i][j]==node[i][k]+node[k][j])
                         node1[i][j]=node1[i][j]+(node1[i][k]*node1[k][j]);
                     else if(node[i][j]>node[i][k]+node[k][j])
                     {
                         node1[i][j]=node1[i][k]*node1[k][j];
                         node[i][j]=node[i][k]+node[k][j];
                     }
                 }
                // node[i][j]=
             }
         }
     }
    /* for(int i=1; i<=n; i++)
     {
         for(int j=1; j<=n; j++)
         {
             cout<<node[i][j]<<" ";
         }
         cout<<endl;
     }*/
     ; k<=n; k++)
     {
         ; i<=n; i++)
         {
             ; j<=n; j++)
             {

                 )
                 {
                     mark[k]+=((node1[i][k]*node1[k][j])/node1[i][j]);
                     // cout<<mark[k]<<" "<<k<<" "<<i<<" "<<j<<endl;
                  //   cout<<node1[i][k]<<" "<<node1[k][j]<<endl;
                 }
             }
         }
     }
     ; i<=n; i++)
         printf("%.3f\n",mark[i]);
     ;
 }

BZOJ-1491-社交网络的更多相关文章

  1. BZOJ 1491 社交网络 Floyd 最短路的数目

    题目链接: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题目大意: 见链接 思路: 直接用floyd算法求最短路,同时更新最短路的数目即 ...

  2. BZOJ 1491 社交网络(最短路)

    对于这道题,如果我们能求出s到t的最短路径数目和s由v到t的最短路径数目,剩下的很好求了. 令dis[i][j]表示i到j的最短路径,dp[i][j]表示i到j的最短路径条数,如果dis[s][v]+ ...

  3. BZOJ 1491 [NOI2007]社交网络

    1491: [NOI2007]社交网络 Time Limit: 10 Sec  Memory Limit: 64 MBSubmit: 1159  Solved: 660[Submit][Status] ...

  4. BZOJ 1491: [NOI2007]社交网络( floyd )

    floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...

  5. 【BZOJ 1491】 [NOI2007]社交网络

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

  6. BZOJ 1491: [NOI2007]社交网络(Floyd+暴力乱搞)

    题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理 ...

  7. bzoj 1491 floyd

    我们用w[i][j]表示i到j的最短路的数量,dis[i][j]表示i到j的最短路,那么我们在floyd的时候,如果dis[i][k]+dis[k][j]==dis[i][j],根据乘法原理我们就w[ ...

  8. bzoj 1491

    思路:先求出每两点之间的最短路,建出n个最短路径图,然后枚举起点终点和中间点,计算条数用到拓扑图dp... 看别人的方法很巧妙地用floyd在计算最短路的时候就可以直接计算条数啦... #includ ...

  9. BZOJ1491: [NOI2007]社交网络

    传送门 最短路计数问题.因为数据量非常小($N \leq 100$),所以Floyd随便搞搞就行了. $f[i][j]$表示路径长度,$g[i][j]$表示最短路方案数. 先跑一遍裸的Floyd,然后 ...

  10. 【BZOJ】1491: [NOI2007]社交网络(floyd)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1491 囧囧囧...................... 囧1:虽然自己想到做法了,但是操作的时候, ...

随机推荐

  1. Qt自定义标签按钮

    当你接触到Qt时,你会为它极为方便的跨平台方面感到吃惊,从而想尝试着使用Qt.渐渐地你会发现Qt自带的一些控件不能满足自己的需要,此时就需要我们自己定义一个属于自己的控件.总所周知,标签的风格设置类比 ...

  2. Myeclipse8.6注册机代码,不用到处找注册机了

    import java.io.*; public class MyEclipseGen { private static final String LL = "Decompiling thi ...

  3. Java中SimpleDateFormat用法详解

    所有已实现的接口: Serializable, Cloneable SimpleDateFormat 是一个以与语言环境有关的方式来格式化和解析日期的具体类.它允许进行格式化(日期 -> 文本) ...

  4. [0] CollectionBase与索引符DictionaryBase与迭代器

    对于简单数组来说,需要用固定的大小来初始化,才能使用: Animal[] myAnimal=new Animal[10]; myAnimal[0]=new Cow("Ken"); ...

  5. IOS机型margin属性无效问题

    这个问题很多小伙伴都有遇到,这次本猿也遇到了,记录一笔. 结论:简单的解决办法margin换padding!如有误,请大神不吝赐教.在Chrome浏览器移动端测试iphone5,打开的也是没问题的(这 ...

  6. 从Html5直播到互动直播,看直播协议的选择

    目前,国内主流的直播协议有HLS.RTMP.HTTP FLV,适用于不同的直播场景. 一.HLS.RTMP与HTTP FLV 1.HLS HLS 全称是 HTTP Live Streaming, 是一 ...

  7. Api接口通用安全策略及实现-OSS.Core

    这篇文章一直说写,迟迟没有动手,这两天看到一些应用接口数据被别人爬虫.短信接口被人高频率请求攻击等案列,感觉简单概述分享一下接口安全验证还是有必要的.毕竟当下基本都以客户端应用为主,如果前期疏忽,发布 ...

  8. JAVA类型擦除

    Java泛型-类型擦除 一.概述 Java泛型在使用过程有诸多的问题,如不存在List<String>.class, List<Integer>不能赋值给List<Num ...

  9. workday2

    今天是实习的第二天 看了一天对smarty模板的介绍,进一步加深了对mvc框架的理解,但是对model认识还是非常的模糊的,可能是之前做的一些项目都是比较小的 对比laravel5,smarty模板显 ...

  10. Http批量异步发送和数据保存

    先说需求. 有个服务程序定时扫描指定文件夹下一个所有文件,文件包含了多个用户(客户)信息及对应的http发送地址和发送数据.现在该服务程序需要提取这些用户信息,然后批量进行发送:发送完后需要将http ...