(if you WA 40pts)警钟敲得粉碎
查看原帖
(if you WA 40pts)警钟敲得粉碎
562521
junhaowang楼主2024/12/14 20:45

三个 inf 相加会爆炸!

也就是

for (rint k = 1; k <= n; k++)
	{
		for (rint i = 1; i <= n; i++)
		{
			for (rint j = 1; j <= n; j++)
			{
				if (i != j && j != k && k != i)
				{
					ans = min(ans, mp[i][k] + mp[k][j] + dis[i][j]);
					dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);
				}
				
			}
		}
	}

改成

for (rint k = 1; k <= n; k++)
	{
		for (rint i = 1; i <= n; i++)
		{
			for (rint j = 1; j <= n; j++)
			{
				if (i != j && j != k && k != i && mp[i][k] != inf && mp[k][j] != inf && dis[i][j] != inf)
				{
					ans = min(ans, mp[i][k] + mp[k][j] + dis[i][j]);
				}
				dis[i][j] = min(dis[i][j], dis[i][k] + dis[k][j]);
			}
		}
	}
2024/12/14 20:45
加载中...