洛谷——P2047 [NOI2007]社交网络
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]社交网络的更多相关文章
- 洛谷 P2047 [NOI2007]社交网络 解题报告
P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ...
- 洛谷P2047 [NOI2007]社交网络 [图论,最短路计数]
题目传送门 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...
- BZOJ1491 洛谷2047 NOI2007 社交网络
Description: 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系.我 们 ...
- 洛谷P2047||bzoj1491 [NOI2007]社交网络
https://www.luogu.org/problemnew/show/P2047 https://www.lydsy.com/JudgeOnline/problem.php?id=1491 也可 ...
- P2047 [NOI2007]社交网络(洛谷)
题目描述 在社交网络 ( Social Network ) 的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题:在一个社交圈子里有 nn 个人,人与人之间有不同程度的关系.我们将这 ...
- 洛谷—— P2047 社交网络
P2047 社交网络 题目描述 在社交网络(social network)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有n个人,人与人之间有不同程度的关系. ...
- 洛谷 P4027 [NOI2007]货币兑换 解题报告
P4027 [NOI2007]货币兑换 题目描述 小 \(Y\) 最近在一家金券交易所工作.该金券交易所只发行交易两种金券:\(A\) 纪念券(以下简称 \(A\) 券)和 \(B\) 纪念券(以下简 ...
- 洛谷P4027 [NOI2007]货币兑换
P4027 [NOI2007]货币兑换 算法:dp+斜率优化 题面十分冗长,题意大概是有一种金券每天价值会有变化,你可以在某些时间点买入或卖出所有的金券,问最大收益 根据题意,很容易列出朴素的状态转移 ...
- 洛谷P4027 [NOI2007]货币兑换(dp 斜率优化 cdq 二分)
题意 题目链接 Sol 解题的关键是看到题目里的提示... 设\(f[i]\)表示到第\(i\)天所持有软妹币的最大数量,显然答案为\(max_{i = 1}^n f[i]\) 转移为\(f_i = ...
随机推荐
- Aaron Swartz Rewriting Reddit中关于web.py的创建思路
这天才少年居然自杀了,哎 原文点这 So how should things work? The first principle is that code should be clear and si ...
- ZOJ 1871:Steps
Steps Time Limit: 2 Seconds Memory Limit: 65536 KB One steps through integer points of the stra ...
- poj 3621(最优比率环)
Sightseeing Cows Farmer John has decided to reward his cows for their hard work by taking them on a ...
- Java中try,catch,finally的用法
Java中try,catch,finally的用法,以前感觉还算熟悉,但看到一篇博文才有更深点的理解,总结网友博客如下. Java异常处理的组合方式: 1.try+catch 运行流程:运行到try ...
- Shell脚本下条件测试(eq.ne.....)(转载)
转载:http://cxj632840815.blog.51cto.com/3511863/1168709 Shell编程中的条件测试 在Linux编程中经常会用到判断数值的大小,字符串是否为空这样或 ...
- source命令用法(转载)
转自:http://zhidao.baidu.com/link?url=mNfsPHSjTEm7llgyMYx0UVNwkJmD_cxLeHtZnHcM6Ms8LDXofVHka_EzHi6GltbR ...
- bzoj [JSOI2010]Group 部落划分 Group【二分+并查集】
我是zz吗这么简单都写错-- 一眼二分,然后判断的话是枚举点,然后计算这个点到已有联通块的最小距离,如果这个点到一些联通块的距离小于当前二分的val,则把这些联通块合并起来,这里用并查集维护,最后看这 ...
- 【BZOJ4059】Non-boring sequences(分析时间复杂度)
题目: BZOJ4059 分析: 想了半天没什么想法,百度到一个神仙做法-- 设原数列为 \(a\),对于每一个 \(i\) 求出前一个和后一个和 \(a_i\) 相等的位置 \(pre[i]\) 和 ...
- Manacher HDOJ 3068 最长回文
题目传送门 关于求解最长回文子串,有dp做法,也有同样n^2的但只用O(1)的空间,还有KMP,后缀数组?? int main(void) { ) == ) { ); memset (dp, fals ...
- 数学+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;再来一个前缀和 */ /***************** ...