1491. [NOI2007]社交网络【最短路计数】
Description
.png)
Input
Output
输出包括n行,每行一个实数,精确到小数点后3位。第i行的实数表示结点i在社交网络中的重要程度。
Sample Input
1 2 1
2 3 1
3 4 1
4 1 1
Sample Output
1.000
1.000
1.000
HINT
社交网络如下图所示。
.png)
我一开始口胡的一个计数方法基本是对的,但有一个关键的地方出了点问题
当可以更新时,用中介点两端的条数乘起来更新就好了(看代码非常好理解)
#include<iostream>
#include<cstring>
#include<cstdio>
#define N (100+10)
using namespace std;
long long dis[N][N],dis_cnt[N][N];
long long n,m,u,v,l; void Floyd()
{
for (int k=;k<=n;++k)
for (int i=;i<=n;++i)
for (int j=;j<=n;++j)
{
if (dis[i][k]+dis[k][j]==dis[i][j])
dis_cnt[i][j]+=dis_cnt[i][k]*dis_cnt[k][j];
if (dis[i][k]+dis[k][j]<dis[i][j])
{
dis[i][j]=dis[i][k]+dis[k][j];
dis_cnt[i][j]=dis_cnt[i][k]*dis_cnt[k][j];
}
}
} double Count(int v)
{
double ans=;
for (int s=;s<=n;++s)
for (int t=;t<=n;++t)
if (s!=v && t!=v && s!=t && dis[s][v]+dis[v][t]==dis[s][t])
ans+=dis_cnt[s][v]*dis_cnt[v][t]*1.0/dis_cnt[s][t];
return ans;
} int main()
{
memset(dis,0x3f,sizeof(dis));
scanf("%lld%lld",&n,&m);
for (int i=;i<=m;++i)
{
scanf("%lld%lld%lld",&u,&v,&l);
dis[u][v]=dis[v][u]=l;
dis_cnt[u][v]=dis_cnt[v][u]=;
}
Floyd();
for (int i=;i<=n;++i)
printf("%0.3lf\n",Count(i));
}
1491. [NOI2007]社交网络【最短路计数】的更多相关文章
- BZOJ1491 [NOI2007]社交网络[最短路计数]
$n$非常的小,结合题目计算式可以想到$O(n^3)$暴枚$s,t,v$,看$v$在不在$s\to t$最短路上($dis_{s,v}+dis_{v,t}=dis_{s,v}$是$v$在两点最短路上的 ...
- BZOJ 1491 [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1159 Solved: 660[Submit][Status] ...
- BZOJ 1491: [NOI2007]社交网络( floyd )
floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...
- BZOJ1491:1491: [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2204 Solved: 1175[Submit][Status ...
- 1491: [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 881 Solved: 518[Submit][Status] ...
- 【BZOJ】1491: [NOI2007]社交网络(floyd)
http://www.lydsy.com/JudgeOnline/problem.php?id=1491 囧囧囧...................... 囧1:虽然自己想到做法了,但是操作的时候, ...
- 1491: [NOI2007]社交网络 - BZOJ
Description Input Output输出文件包括n 行,每行一个实数,精确到小数点后3 位.第i 行的实数表 示结点i 在社交网络中的重要程度.Sample Input4 41 2 12 ...
- BZOJ 1491: [NOI2007]社交网络(Floyd+暴力乱搞)
题面: https://www.lydsy.com/JudgeOnline/problem.php?id=1491 题解: 先看数据范围,n<=100..欸可以乱搞了 首先因为小学学过的乘法原理 ...
- [BZOJ1491][NOI2007]社交网络 floyd
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2196 Solved: 1170[Submit][Status ...
随机推荐
- [日常] DNS的迭代查询过程
DNS是应用层协议,端口号为tcp/53和udp/53 DNS查询过程,比如访问www.test.com1.客户机查询www.test.com2.查询首选DNS服务器,Linux下/etc/resol ...
- vue项目引入element
前提工作-安装并配置好以下环境: 1.安装node 2.安装git 1.初始化项目 vue init webpack vue-elementui npm run dev 2.安装element np ...
- Hibernate中查询优化策略
Hibernate查询优化策略 ² 使用延迟加载等方式避免加载多余数据 ² 通过使用连接查询,配置二级缓存.查询缓存等方式减少select语句数目 ² 结合缓存机制,使用iterate()方法减少查询 ...
- 穿过代理获取真正的IP
/// <summary> /// 获取真ip /// </summary> /// <returns></returns> public string ...
- RabbitMQ--学习资源汇
1.RabbitMQ 实战教程 文集(alibaba) 2.RabbitMQ从入门到精通(9篇系列博文 )(anzhsoft2008 ) 3. RabbitMQ目录(nick's blog) 使用 ...
- MySql基本学习知识点:
1.Mysql的简介: (1):常识: MySQL是一种关系数据库管理系统,是一种开源软件 由瑞典MySQL AB公司开发,2008年1月16号被Sun公司收购.2009年,SUN又被Oracle收购 ...
- LeetCode 545----Boundary of Binary Tree
Given a binary tree, return the values of its boundary in anti-clockwise direction starting from roo ...
- java基础(七) java四种访问权限
引言 Java中的访问权限理解起来不难,但完全掌握却不容易,特别是4种访问权限并不是任何时候都可以使用.下面整理一下,在什么情况下,有哪些访问权限可以允许选择. 一.访问权限简介 访问权限控制: ...
- 前端HTML空格与后台PHP utf-8空格
今天在处理html input输入框时,发现一个问题: 在用户名输入框中输入admin "'p(中间是一个空格),点保存后台提示数据保存成功,按理应该是未修改,通过chrome调试工具发现传 ...
- 团队项目个人进展——Day05
一.昨天工作总结 冲刺第五天,学习了官方文档说明,学习并但是并未实现地图的放大与缩小 二.遇到的问题 对一些框架和API不太熟悉 未实现地图的放大与缩小 三.今日工作规划 深入学习有关视频与文档说明