📄 pku2139.cpp
字号:
#include <stdio.h>
int main()
{
int i, j, k, N, M, n, min;
int mb[1000];
int dis[301][301];
scanf("%d%d", &N, &M);
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
dis[i][j] = 1000;
}
}
while (M--)
{
scanf("%d", &n);
for (i = 0; i < n; i++)
{
scanf("%d", &mb[i]);
}
for (i = 0; i < n; i++)
{
for (j = 0; j < n; j++)
{
if (i == j) continue;
dis[mb[i]-1][mb[j]-1] = 1;
}
}
}
for (i = 0; i < N; i++)
{
dis[i][i] = 0;
}
for (k = 0; k < N; k++)
{
for (j = 0; j < N; j++)
{
for (i = 0; i < N; i++)
{
if (dis[i][j] > dis[i][k] + dis[j][k])
{
dis[i][j] = dis[i][k] + dis[j][k];
dis[j][i] = dis[i][k] + dis[j][k];
}
}
}
}
for (i = 0; i < N; i++)
{
for (j = 0; j < N; j++)
{
if (i == j) continue;
dis[i][i] += dis[i][j];
}
}
min = dis[0][0];
for (i = 1; i < N; i++)
{
if (dis[i][i] < min)
{
min = dis[i][i];
}
}
printf("%d\n", min * 100 / ( N - 1));
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -