P2047 [NOI2007]社交网络

$Floyd$,一眼看到就是他(博主是不小心瞄到了这个题的标签吧qwq)

这个题目只要预处理出$S$到$T$的最短路的条数即可,类似$Spfa$的更新方法

如果当前枚举的$k$可以更新$i$到$j$的最短路,那么就更新最短路,同时$i$到$j$的最短路条数更新为$p[i][k]*p[k][j]$根据乘法原理,$p[i][j]$表示$i$到$j$的最短路条数

最后统计一下就可以了,也是$N^3$暴力枚举

注意:要开$long$$long$

#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cstring> #define N 105
#define LL long long
using namespace std; int n,m;
LL d[N][N],p[N][N];
double im[N]; int main()
{
scanf("%d%d",&n,&m);
memset(d,0x7f,sizeof(d));
for(int u,v,w,i=;i<=m;i++){
scanf("%d%d%d",&u,&v,&w);
d[u][v]=min(d[u][v],(LL)w);
d[v][u]=min(d[v][u],(LL)w);
p[u][v]=p[v][u]=;
} for(int k=;k<=n;k++)
for(int i=;i<=n;i++)
for(int j=;j<=n;j++){
if(d[i][k]==d[][]&&d[k][j]==d[][]) continue;
if(d[i][k]+d[k][j]<d[i][j]) d[i][j]=d[i][k]+d[k][j],p[i][j]=p[i][k]*p[k][j];
else if(d[i][k]+d[k][j]==d[i][j]) p[i][j]+=p[i][k]*p[k][j];
} for(int v=;v<=n;v++){
for(int s=;s<=n;s++){
for(int t=;t<=n;t++){
if(v==s||s==t||v==t) continue;
if(d[s][v]+d[v][t]==d[s][t])
im[v]+=(1.0*p[s][v]*p[v][t])/(double)p[s][t];
}
}
} for(int i=;i<=n;i++) printf("%.3lf\n",im[i]); return ;
}

洛谷——P2047 [NOI2007]社交网络的更多相关文章

  1. 洛谷 P2047 [NOI2007]社交网络 解题报告

    P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ...

  2. 洛谷P2047 [NOI2007]社交网络 [图论,最短路计数]

    题目传送门 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...

  3. BZOJ1491 洛谷2047 NOI2007 社交网络

    Description: 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我 们 ...

  4. 洛谷P2047||bzoj1491 [NOI2007]社交网络

    https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...

  5. P2047 [NOI2007]社交网络(洛谷)

    题目描述 在社交网络 ( Social Network ) 的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题:在一个社交圈子里有 nn 个人,人与人之间有不同程度的关系.我们将这 ...

  6. 洛谷—— P2047 社交网络

    P2047 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...

  7. 洛谷 P4027 [NOI2007]货币兑换 解题报告

    P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...

  8. 洛谷P4027 [NOI2007]货币兑换

    P4027 [NOI2007]货币兑换 算法:dp+斜率优化 题面十分冗长,题意大概是有一种金券每天价值会有变化,你可以在某些时间点买入或卖出所有的金券,问最大收益 根据题意,很容易列出朴素的状态转移 ...

  9. 洛谷P4027 [NOI2007]货币兑换(dp 斜率优化 cdq 二分)

    题意 题目链接 Sol 解题的关键是看到题目里的提示... 设\(f[i]\)表示到第\(i\)天所持有软妹币的最大数量,显然答案为\(max_{i = 1}^n f[i]\) 转移为\(f_i = ...

随机推荐

  1. Aaron Swartz Rewriting Reddit中关于web.py的创建思路

    这天才少年居然自杀了,哎 原文点这 So how should things work? The first principle is that code should be clear and si ...

  2. ZOJ 1871:Steps

    Steps Time Limit: 2 Seconds      Memory Limit: 65536 KB One steps through integer points of the stra ...

  3. poj 3621(最优比率环)

    Sightseeing Cows Farmer John has decided to reward his cows for their hard work by taking them on a ...

  4. Java中try,catch,finally的用法

    Java中try,catch,finally的用法,以前感觉还算熟悉,但看到一篇博文才有更深点的理解,总结网友博客如下. Java异常处理的组合方式: 1.try+catch  运行流程:运行到try ...

  5. Shell脚本下条件测试(eq.ne.....)(转载)

    转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...

  6. source命令用法(转载)

    转自:http://zhidao.baidu.com/link?url=mNfsPHSjTEm7llgyMYx0UVNwkJmD_cxLeHtZnHcM6Ms8LDXofVHka_EzHi6GltbR ...

  7. bzoj [JSOI2010]Group 部落划分 Group【二分+并查集】

    我是zz吗这么简单都写错-- 一眼二分,然后判断的话是枚举点,然后计算这个点到已有联通块的最小距离,如果这个点到一些联通块的距离小于当前二分的val,则把这些联通块合并起来,这里用并查集维护,最后看这 ...

  8. 【BZOJ4059】Non-boring sequences(分析时间复杂度)

    题目: BZOJ4059 分析: 想了半天没什么想法,百度到一个神仙做法-- 设原数列为 \(a\),对于每一个 \(i\) 求出前一个和后一个和 \(a_i\) 相等的位置 \(pre[i]\) 和 ...

  9. Manacher HDOJ 3068 最长回文

    题目传送门 关于求解最长回文子串,有dp做法,也有同样n^2的但只用O(1)的空间,还有KMP,后缀数组?? int main(void) { ) == ) { ); memset (dp, fals ...

  10. 数学+DP Codeforces Round #304 (Div. 2) D. Soldier and Number Game

    题目传送门 /* 题意:这题就是求b+1到a的因子个数和. 数学+DP:a[i]保存i的最小因子,dp[i] = dp[i/a[i]] +1;再来一个前缀和 */ /***************** ...