分类: C/C++
2012-03-31 17:51:28
注意到题目中有这样一句话:
Whenever an alien is assimilated, or at the beginning of the search, the group may split in two or more groups (but their consciousness is still collective.)。
最开始只看到"split into two", 结果走了不少弯路。让人想起高中老师一句话,“做题看到半截就开始做,你还做得安逸得很“。这在工作中也一样,做事一定要仔细,仔细可以弥补你的不足,仔细可以少犯很多不必要的错误。
言归正转,看到上面那句题意,我们就可以转换成,求最小生成树的问题。我们不用区分borg和alien,把它们都看作是图中的节点即可,先求每个节点之间的最短路径,然后使用Kruskal或者Prim算法生成MST即可。
代码:
点击(此处)折叠或打开