⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pku2139.cpp

📁 这是ACM 方面的资料 是PKU的 北京大学的出来的
💻 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 + -