[luogu2047 NOI2007] 社交网络 (floyed最短路)
输入输出样例
输入样例#1:
4 4
1 2 1
2 3 1
3 4 1
4 1 1
输出样例#1:
1.000
1.000
1.000
1.000
题解
在进行floyed的过程中,顺便更新最短路数量
结束后统计每个点的答案值
PS:不能在floyed的过程中统计每个点对一条最短路的贡献,因为会有没有计算到的值
在dp过程中一定要注意dp的顺序以及dp中所需的值是否在此之前已求出!!
code:
//By Menteur_Hxy
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
#include<cmath>
#define M(a,b) memset(a,(b),sizeof(a))
#define F(i,a,b) for(register int i=(a);i<=(b);i++)
#define E(i,u) for(register int i=head[u];i;i=nxt[i])
using namespace std;
int rd() {
int x=0,f=1; char c=getchar();
while(!isdigit(c)) {if(c=='-')f=-f;c=getchar();}
while(isdigit(c)) x=(x<<1)+(x<<3)+c-48,c=getchar();
return x*f;
}
const int N=110,M=4510;
int n,m;
double ans[N];
long long dis[N][N],num[N][N];
void floyed() {
for(int k=1;k<=n;k++) {
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(dis[i][j]>dis[i][k]+dis[k][j]&&i!=j)
num[i][j]=num[i][k]*num[k][j],
dis[i][j]=dis[i][k]+dis[k][j];
else if(dis[i][j]==dis[i][k]+dis[k][j]&&i!=j)
num[i][j]+=num[i][k]*num[k][j];
}
F(k,1,n) F(i,1,n) F(j,1,n) if(num[i][j]&&dis[i][j]==dis[i][k]+dis[k][j])
ans[k]+=double(num[i][k]*num[k][j])/double(num[i][j]);
}
int main() {
n=rd(),m=rd();
M(dis,0x3f);
F(i,1,m) {
int a=rd(),b=rd(),c=rd();
dis[a][b]=dis[b][a]=c;
num[a][b]=num[b][a]=1;
}
floyed();
F(i,1,n) printf("%.3lf\n",ans[i]);
return 0;
}
[luogu2047 NOI2007] 社交网络 (floyed最短路)的更多相关文章
- [NOI2007]社交网络(最短路)
[NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之 ...
- BZOJ1491: [NOI2007]社交网络(Floyd 最短路计数)
Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 2343 Solved: 1266[Submit][Status][Discuss] Descripti ...
- 1491. [NOI2007]社交网络【最短路计数】
Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子里有n个人,人与人之间有不同程度的关系.我们将这 ...
- 【BZOJ1491】【NOI2007】社交网络(最短路,动态规划)
[BZOJ1491][NOI2007]社交网络(最短路,动态规划) 题面 BZOJ 洛谷 图片是假的,只能到OJ上看 Description 在社交网络(socialnetwork)的研究中,我们常常 ...
- BZOJ 1491 [NOI2007]社交网络
1491: [NOI2007]社交网络 Time Limit: 10 Sec Memory Limit: 64 MBSubmit: 1159 Solved: 660[Submit][Status] ...
- 图论(floyd算法):NOI2007 社交网络
[NOI2007] 社交网络 ★★ 输入文件:network1.in 输出文件:network1.out 简单对比 时间限制:1 s 内存限制:128 MB [问题描述] 在社交网络( ...
- BZOJ 1491: [NOI2007]社交网络( floyd )
floyd...求最短路时顺便求出路径数. 时间复杂度O(N^3) ------------------------------------------------------------------ ...
- 洛谷 P2047 [NOI2007]社交网络 解题报告
P2047 [NOI2007]社交网络 题目描述 在社交网络(\(social\) \(network\))的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题.在一个社交圈子里有\ ...
- 【BZOJ1491】[NOI2007]社交网络 Floyd
[BZOJ1491][NOI2007]社交网络 Description 在社交网络(socialnetwork)的研究中,我们常常使用图论概念去解释一些社会现象.不妨看这样的一个问题. 在一个社交圈子 ...
随机推荐
- 【ACM】poj_2356_Find a multiple_201308061947
Find a multipleTime Limit: 1000MS Memory Limit: 65536K Total Submissions: 4988 Accepted: 2159 Spe ...
- Docker--微软dotconf截图
- MySQL Workbench出现:Error Code: 2013. Lost connection to MySQL server during query的问题解决
解决办法: [Edit]->[Preference]->[SQL Editor] 将下图DBMS connection read time out (in seconds)适当调大: 参考 ...
- JavaThread等待/通知经典范式
JavaThread等待/通知经典范式 package com.stono.thread; import java.text.SimpleDateFormat; import java.util.Da ...
- 去掉文本框前后的空格(JS+JQuery)
表单验证时,需要去除文本框前后的空格才可以正确通过验证.以前看到过一句话:任何设计和代码都要对用户足够宽容. <input type="text" class="p ...
- 二维数组+字符串split+Double包装类 例题
将String s = "1,2;3,4,5;6,7,8" 存放在double类型的二维数组中,使得 d[0][0]=1.0 d[0][1]=2.0 d[1][0]=3.0 d[1 ...
- CharSequence源码分析
CharSequence是一个接口,表示一个char值的可读序列,此接口为多种char序列提供统一的.只读的通道.既然是接口,就不能通过new来进行赋值,只能通过以下方式赋值: CharSequenc ...
- WPF 资源管理器 WPF Explorer
最近项目中有个功能是读取外部设备的中的文件,同时由于项目样式限制,因此需要需要简单实现一个Window资源管理器功能. 由于为了接下来工作更好地完善功能,因此先一步做了一个DEMO用于参照和不断的修正 ...
- ffmpeg编码
1. 注册所有容器格式和CODEC:av_register_all()2. 打开文件:av_open_input_file()3. 从文件中提取流信息:av_find_stream_info()4. ...
- 9) 十分钟学会android--使用Fragment建立动态UI
为了在 Android 上为用户提供动态的.多窗口的交互体验,需要将 UI 组件和 Activity 操作封装成模块进行使用,这样我们就可以在 Activity 中对这些模块进行切入切出操作.可以用 ...