【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个人,人与人之间有不同程度的关系.我们将这 ...
随机推荐
- 自动化运维之puppet的学习(如何找到你需要的模块)
https://forge.puppetlabs.com/ puppet 模块下载 http://kisspuppet.com/2014/01/14/puppet_forge_modules/ pu ...
- 【转】Linux中如何安装.rpm、.tar、.tar.gz和tar.bz2
我以下面三个包为例:(三个包都在/etc/opt下)A.example-1.2.3-1.rpmB.example-1.2.3-1.tarC.example-1.2.3-1.tar.gz 1.对于rpm ...
- iOS 转载一篇日期处理文章
感谢原作者的辛勤付出,由于时间太久,记不住原来的地址了,如果你是原作者,请联系我,我会添加原文连接,谢谢! iOS处理时间的类主要包括NSDate,NSDateFormatter, NSDateCom ...
- jsp回车键登录代码
$("body").keydown(function(event) { if (event.keyCode == "13") {// keyCode=13是回车 ...
- UVALive 7267 Mysterious Antiques in Sackler Museum (判断长方形)
Sackler Museum of Art and Archaeology at Peking University is located on a beautiful site near the W ...
- DOS 循环读取txt每一行内容
在命令行窗口中输入: for /f %i in (f:\mydata.txt) do echo %i 如果要是写成批处理文件run.bat for /f %%i in (f:\mydata.txt) ...
- ECSHOP去版权与标志
前台部分: 1:去掉头部TITLE部分的ECSHOP演示站 Powered by ecshop 前者在后台商店设置 - 商店标题修改 后者打开includes/lib_main.php $page_t ...
- C/C++函数参数读取顺序2
#include <stdio.h>int main(){ int a=1,b=3,c=3; printf("%d, %d, %d",(a++,b++,c++),b,c ...
- Android仿微信界面
效果图 原理介绍 1.先绘制一个颜色(例如:粉红) 2.设置Mode=DST_IN 3.绘制我们这个可爱的小机器人 回答我,显示什么,是不是显示交集,交集是什么?交集是我们的小机器人的非透明区域,也就 ...
- 集群管理 secondaryNameNode和NameNode(转)
为了达到以下负责均衡,需要调整以下 改变负载 三台机器,改变负载 host2(NameNode.DataNode.TaskTracker) host6(SecondaryNameNode.DataNo ...