BZOJ 1491 社交网络
2016-09-20 19:34
267 查看
floyd。
#include<iostream> #include<cstdio> #include<cstring> #include<algorithm> #define maxv 150 #define inf 1000000007 using namespace std; int n,m,x,y; double map[maxv][maxv],z,g[maxv][maxv]; int main() { scanf("%d%d",&n,&m); for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) { if (i==j) {map[i][j]=0;g[i][j]=1;} else {map[i][j]=inf;g[i][j]=0;} } for (int i=1;i<=m;i++) { scanf("%d%d%lf",&x,&y,&z); map[x][y]=map[y][x]=z; g[x][y]=g[y][x]=1; } for (int k=1;k<=n;k++) for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) { if (map[i][j]>map[i][k]+map[k][j]) { map[i][j]=map[i][k]+map[k][j]; g[i][j]=g[i][k]*g[k][j]; } else if (map[i][j]==map[i][k]+map[k][j]) if ((i!=k) && (j!=k)) g[i][j]+=g[i][k]*g[k][j]; } for (int i=1;i<=n;i++) { double ans=0; for (int j=1;j<=n;j++) for (int k=1;k<=n;k++) { if ((i!=j) && (i!=k)) { if (map[j][i]+map[i][k]==map[j][k]) ans+=(g[j][i]*g[i][k])/g[j][k]; } } printf("%.3lf\n",ans); } return 0; }
相关文章推荐
- 网络虚拟化-简介
- http协议没有已注册的程序
- 请求网络资源的小工具类
- 判断tcp 是否正常连接
- 【chrome错误】Cross origin requests are only supported for protocol schemes: http, data,chrome-extension, https, chrome-extension-reso
- 抓Https包
- http协议进阶(三)http报文
- Android Studio平台如何在Android 6.0中继续支持Apache HttpClient
- HTTP 协议入门
- httpPost对JSON发送和接收
- TCP协议小结一--TCP连接与释放以及TCP与UDP的区别
- [Windows网络编程课设]南工程聊天室客户端源码
- HTTP中的URL长度限制
- http://www.cnblogs.com/yuchenlin/
- curl 取得HTTP返回的状态码
- http异步请求的一种调用示例
- 开源免费的C/C++网络库(c/c++ sockets library)
- 三级网络综合题第三道--DHCP服务器
- 重定向Http status code 303 和 302
- HTTP status code