[bzoj1491] [NOI2007]社交网络
来源:互联网 发布:英语学霸软件 编辑:程序博客网 时间:2024/05/22 16:02
n<=100
先跑弗洛伊德,跑出最短路同时累计最短路的数量
枚举一个点
累加一下就行了
注意范围和精度,要开ll
如果出现浮点数记得要开double
用float是不可能用的,这辈子都不可能用的
#include <cstdio>#include <ctype.h>#include <cstring>#define lb double#define ll long long#define max(a,b) a>b?a:b#define min(a,b) a<b?a:btemplate<typename T>inline T read(T &f){ f=0; int x=1; char c=getchar(); while(!isdigit(c)){if(c=='-')x=-1;c=getchar();} while(isdigit(c))f=f*10+c-'0',c=getchar(); return f*x;}const int maxn=105;const ll INF=1e10+5;int n,m;int u,v,w;ll G[maxn][maxn];ll num[maxn][maxn];lb ans[maxn];int main(){ read(n); read(m); for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) G[i][j]=INF; for(int i=1;i<=m;i++){ read(u); read(v); read(w); G[u][v]=G[v][u]=w; num[u][v]=num[v][u]=1; } for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++){ if(G[i][k]+G[k][j]<G[i][j]) G[i][j]=G[i][k]+G[k][j],num[i][j]=0; if(G[i][k]+G[k][j]==G[i][j]) num[i][j]+=num[i][k]*num[k][j]; } for(int k=1;k<=n;k++) for(int i=1;i<=n;i++) for(int j=1;j<=n;j++) if(k!=j&&k!=i&&j!=i) if(G[i][k]+G[k][j]==G[i][j]) ans[k]+=(num[i][k]*num[k][j]*1.0)/(num[i][j]*1.0); for(int i=1;i<=n;i++) printf("%.3lf\n",ans[i]); return 0;}
阅读全文
0 0
- [BZOJ1491][NOI2007]社交网络
- bzoj1491【NOI2007】社交网络
- BZOJ1491: [NOI2007]社交网络
- bzoj1491 [NOI2007]社交网络
- bzoj1491: [NOI2007]社交网络
- [bzoj1491] [NOI2007]社交网络
- bzoj1491: [NOI2007]社交网络
- bzoj1491: [NOI2007]社交网络 FLOYD
- bzoj1491 NOI2007 社交网络[floyed]
- bzoj1491 [NOI2007]社交网络(Floyd+组合数学)
- bzoj1491 社交网络 floyd
- 【NOI2007】社交网络
- [NOI2007]社交网络
- 1491: [NOI2007]社交网络
- [NOI2007] 社交网络
- 1491: [NOI2007]社交网络
- 1491: [NOI2007]社交网络 (FLOYD)
- bzoj 1491: [NOI2007]社交网络
- eclipse 中的注释 快捷键
- 2.2_字符串String
- RabbitMQ Tutorials简介
- 训练赛第二场总结
- Windows下为使用Mingw环境的Qt编译opencv
- [bzoj1491] [NOI2007]社交网络
- JdbcTemplate实现CRUD操作
- 关于大数据报告收获
- 关注民生民情
- Pymol(1.8.6)作图技巧之cartoon和surface镶嵌模型
- QQ侧滑菜单的实现和拓展-DrawerLayout
- HDU 3336 Count the strings(KMP+DP)
- 第一篇
- 关注民生民情