bzoj 1491: [NOI 2007]社交网络
2014-01-05 19:06
99 查看
这道题一开始自己本来想出来了。。
结果自己又把自己推翻了。。于是看题解和自己一样。
还好刘教授帮我解释了一下floyd对于一条最短路只会判一次在K=这条路径上最大的那个点的时候。
后面又因为滥用memset(f,127,sizeof(f))导致f[i][k] + f[j][k]会爆所以wa掉了
喜闻乐见地贴代码:
View Code
结果自己又把自己推翻了。。于是看题解和自己一样。
还好刘教授帮我解释了一下floyd对于一条最短路只会判一次在K=这条路径上最大的那个点的时候。
后面又因为滥用memset(f,127,sizeof(f))导致f[i][k] + f[j][k]会爆所以wa掉了
喜闻乐见地贴代码:
/* ID:WULALA PROB:bzoj1491 LANG:C++ */ #include <cstdio> #include <cstring> #include <algorithm> #include <cmath> #include <iostream> #include <fstream> #include <ctime> #define N 108 #define M #define mod #define mid(l,r) ((l+r) >> 1) #define INF 0x7ffffff using namespace std; long long n,m,f ,sum ; double w ; void init() { scanf("%lld%lld",&n,&m); for (int i = 1;i <= n;i++) for (int j = 1;j <= n;j++) sum[i][j] = 1,f[i][j] = INF; for (int i = 1;i <= n;i++) f[i][i] = 0; for (int i = 1;i <= m;i++) { int a,b,c; scanf("%d%d%d",&a,&b,&c); f[a][b] = f[b][a] = c; } } void floyd() { for (int k = 1;k <= n;k++) for (int i = 1;i <= n;i++) for (int j = 1;j <= n;j++) { if (k == i||i == j||j == k) continue; if (f[i][j] == f[i][k] + f[k][j]) sum[i][j] += sum[i][k] * sum[k][j]; else if (f[i][j] > f[i][k] + f[k][j]) f[i][j] = f[i][k] + f[k][j],sum[i][j] = sum[i][k] * sum[k][j]; } } void work() { for (int k = 1;k <= n;k++) for (int i = 1;i <= n;i++) for (int j = 1;j <= n;j++) { if (k == i||i == j||j == k) continue; if (f[i][j] == f[i][k] + f[k][j]) w[k] += (double)(sum[i][k] * sum[k][j]) / (double)(sum[i][j]); } } int main() { init(); floyd(); work(); for (int i = 1;i <= n;i++) printf("%.3lf\n",w[i]); return 0; }
View Code
相关文章推荐
- bzoj 1491[NOI 2007]社交网络
- [BZOJ 1491][NOI 2007]社交网络(Floyd+计数问题)
- [BZOJ 1491] [NOI 2007] 社交网络
- noi 2007 社交网络 最短路
- BZOJ1491:1491: [NOI2007]社交网络
- 【bzoj1492】 NOI2007—货币兑换Cash
- 2007: [Noi2010]海拔 - BZOJ
- bzoj2007 [Noi2010]海拔
- BZOJ1491 [NOI2007]社交网络
- 【bzoj2007】[Noi2010]海拔 最小割+对偶图+最短路
- BZOJ 1491 [NOI2007]社交网络 - Floyd(相关的DP思想)
- BZOJ 2007: [Noi2010]海拔
- BZOJ1491 [NOI2007]社交网络
- BZOJ 2007 [NOI2010 D1T3] 海拔
- 洛谷 P2046 BZOJ 2007 海拔(NOI2010)
- bzoj 1491 1491: [NOI2007]社交网络 最短路
- bzoj 1491: [NOI2007]社交网络
- 【BZOJ2007】[Noi2010]海拔 对偶图最短路
- bzoj 1491: [NOI2007]社交网络
- bzoj1491 社交网络