首先,我要声明我不要求任何代码或完整的解决方案。 我将描述问题:
您将获得一栋建筑物中的房间数量以及它们之间的走廊数量。每个走廊连接 2 个房间,并被赋予重量。总是可以到达任何房间。你应该通过移除它们来减少所有走廊的总重量,打印出减少的重量。
这些假设是否正确?:
建筑物是一个图形,房间是顶点,走廊是连接它们的边。因此这是一个无向连通图。
您可以通过获取图的最小生成树的权重,然后将完整权重减去 MST 的权重来解决这个问题 - 结果是可以删除的走廊权重的总和。
我已经为 MST 实现了 Prim 算法,结果对于示例案例和我在 Internet 上找到的任何其他 MST 案例都是正确的。但是,评分服务器仍然给我“错误答案”,没有其他信息。我不知道怎么了。输入中不超过 100 个顶点和 5000 条边,因此范围应该不是问题。权重是整数 <=200。我正在为 MTS 使用邻接矩阵。示例输入:
5 7
1 2 50
2 3 40
3 4 20
4 5 10
1 4 40
3 5 30
在这种情况下,程序打印 80。完整的重量是 190,最小重量是 110,所以我们可以删除 190 - 110 = 80
我的问题是:
- 有没有什么明显的错误浮现在你的脑海中?需要注意的事项,为什么它适用于示例输入等。
- 互联网上是否有任何中等规模的 MST 测试用例可用于查找问题?
- 有没有其他方法可以解决这个问题?我很乐意用评分服务器尝试任何事情。
我对图表完全陌生,所以我可能会遗漏一些东西。