【BZOJ】1491: [NOI2007]社交网络(floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1491

囧囧囧。。。。。。。。。。。。。。。。。。。。。。
囧1:虽然自己想到做法了,但是操作的时候,竟然忘记之前想到的求最短路的数量。。。(充分证实我是蒟蒻,)然后稍稍看了下题解代码。。
囧2:初始化这个梗我就T_T...还有此题精度各种爆啊。。。后2wa就是精度有问题啊囧。这题要全部开double。。要不然就。。。。我查了下double的精度,omg。。300多位。。这太爽。
此题不用说了吧,,有点最短路基础的都懂,求路径数量的时候只要判断d[i][j]==d[i][k]+d[k][j]时就根据乘法原理×上。
自环的最短路数量要=1,要不然,,你懂的。
#include <cstdio>
#include <cstring>
#include <string>
#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
#define rep(i, n) for(int i=0; i<(n); ++i)
#define for1(i,a,n) for(int i=(a);i<=(n);++i)
#define for2(i,a,n) for(int i=(a);i<(n);++i)
#define for3(i,a,n) for(int i=(a);i>=(n);--i)
#define for4(i,a,n) for(int i=(a);i>(n);--i)
#define CC(i,a) memset(i,a,sizeof(i))
#define max(a,b) ((a)>(b)?(a):(b))
#define min(a,b) ((a)<(b)?(a):(b))
#define read(a) a=getnum()
#define print(a) printf("%d", a)
inline int getnum() { int ret=0; char c; int k=1; for(c=getchar(); c<'0' || c>'9'; c=getchar()) if(c=='-') k=-1; for(; c>='0' && c<='9'; c=getchar()) ret=ret*10+c-'0'; return k*ret; } const int N=105; double d[N][N], I[N], f[N][N];
int main() {
int n=getnum(), m=getnum(), u, v;
for1(i, 1, n) for1(j, 1, n) d[i][j]=1e15;
for1(i, 1, m) read(u), read(v), scanf("%lf", &d[u][v]), d[v][u]=d[u][v], f[u][v]=f[v][u]=1;
for1(k, 1, n) for1(i, 1, n) for1(j, 1, n) {
if(d[i][j]>d[i][k]+d[k][j]) d[i][j]=d[i][k]+d[k][j], f[i][j]=0;
if(d[i][j]==d[i][k]+d[k][j]) f[i][j]+=f[i][k]*f[k][j];
}
for1(i, 1, n) f[i][i]=0;
for1(k, 1, n)
for1(i, 1, n) for1(j, 1, n) if(d[i][j]==d[i][k]+d[k][j] && f[i][j]>0)
I[k]+=f[i][k]*f[k][j]/f[i][j];
for1(i, 1, n) printf("%.3lf\n", I[i]);
return 0;
}
Description

Input

Output
Sample Input
1 2 1
2 3 1
3 4 1
4 1 1
Sample Output
1.000
1.000
1.000
HINT

为1

Source
【BZOJ】1491: [NOI2007]社交网络(floyd)的更多相关文章
- BZOJ 1491: [NOI2007]社交网络( floyd )
floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...
- BZOJ 1491 [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1159 Solved: 660[Submit][Status] ...
- BZOJ 1491: [NOI2007]社交网络(Floyd+暴力乱搞)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理 ...
- 1491: [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 881 Solved: 518[Submit][Status] ...
- [BZOJ1491][NOI2007]社交网络 floyd
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2196 Solved: 1170[Submit][Status ...
- BZOJ1491:1491: [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2204 Solved: 1175[Submit][Status ...
- 【BZOJ1491】[NOI2007]社交网络 Floyd
[BZOJ1491][NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子 ...
- 1491: [NOI2007]社交网络 - BZOJ
Description Input Output输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度.Sample Input4 41 2 12 ...
- 1491. [NOI2007]社交网络【最短路计数】
Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这 ...
随机推荐
- Android中多个调用Activity的问题
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" ...
- asp.net动态输出透明gif图片
要使用asp.net动态输出透明gif图片,也就是用Response.ContentType = "image/GIF". 查了国内几个中文资料都没解决,最后是在一个英文博客上找到 ...
- 应用 JD-Eclipse 插件实现 RFT 中 .class 文件的反向编译
概述 反编译是一个将目标代码转换成源代码的过程.而目标代码是一种用语言表示的代码 , 这种语言能通过实机或虚拟机直接执行.文本所要介绍的 JD-Eclipse 是一款反编译的开源软件,它是应用于 Ec ...
- django LDAP
> http://goodosoft.github.io/2015/02/25/Using-AD-as-authentication-for-Django/ > http://my.osc ...
- Android Studio项目整合PullToRefresh的问题记录
PullToRefresh下拉刷新在App中应用非常频繁,然而PullToRefresh是在ADT下开发完成的.如果要将其整合到Android Studio目录下的话颇费周折.前面的文章“Androi ...
- iOS 关于多线程的一些知识点(不断更新)
1.NSOperation 对于NSOperation,In OS X v10.6 and later, operation queues ignore the value returned by t ...
- iOS7 和 iOS6的页面兼容问题
ios7 的status bar变透明了,各个bar也透明了,一个controller的view占据了整个屏幕.怎么调整呢?基本的思想是把内容的坐标下移.如果仅仅把内容的y坐标下移,那么在ios6上显 ...
- Linux下安装firefox最新版
Linux刚安装好的时候,默认是火狐浏览器并且版本比较低,我的系统是CentOS,火狐版本号才31,用yum安装的话版本也不是最新,只要从官方网站下载最新版安装就可以了,方法如下: 首先去火狐主页,中 ...
- UVALive 7040 Color (容斥原理+逆元+组合数+费马小定理+快速幂)
题目:传送门. 题意:t组数据,每组给定n,m,k.有n个格子,m种颜色,要求把每个格子涂上颜色且正好适用k种颜色且相邻的格子颜色不同,求一共有多少种方案,结果对1e9+7取余. 题解: 首先可以将m ...
- HDU 4704 Sum (高精度+快速幂+费马小定理+二项式定理)
Sum Time Limit:1000MS Memory Limit:131072KB 64bit IO Format:%I64d & %I64u Submit Status ...