1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
#include<algorithm> #define N 101 using namespace std;
int () { int map[N], d[N][N], u, v, Case = 1;
while (scanf("%d%d", &u, &v) && u&&v) { int i, j, k, idx = 0; for (i = 0; i < N; i++) fill(d[i], d[i] + N, 1e9); fill(map, map + N, 0);
do { if (!map[u]) map[u] = ++idx; if (!map[v]) map[v] = ++idx;
d[map[u]][map[v]] = 1; } while (scanf("%d%d", &u, &v) && u&&v);
for (k = 0; k <= idx; k++) for (i = 0; i <= idx; i++) for (j = 0; j <= idx; j++) if (i != j&&d[i][k] + d[k][j] < d[i][j]) d[i][j] = d[i][k] + d[k][j];
int sum = 0, count = 0; for (i = 0; i <= idx; i++) for (j = 0; j <= idx; j++) if (d[i][j] < 1e9) { sum += d[i][j]; count++; }
printf("Case %d: average length between pages = %.3f clicksn", Case++, (float)sum / count); }
return 0; }
|
近期评论