这题的prim不加堆优化貌似会快一点
|
|
弱菜使用并查集写的...Max表示当前时间,对于每两个点都更新Max值
即 Max=max(Max,Max+distance[i][j]/2+distance[i][j] Mod 2-Max) 注意distance[i][j]/2+distance[i][j]Mod2表示的是两点到最近公共点的曼哈顿距离.减去Max表示减去已经扩散的距离. 看上去挺麻烦其实就是维护不断增加Max的值直到并查集只剩下一个集合为止(所有的元素都成了一个连通块) 注意distance的值存放在一个一维的不下降数组里,否则就会有答案变大的情况
题目 512 扩散
2012-06-19 18:24:30
|
|
自主构图+最小生成树,
因为用邻接矩阵存的图(似乎用邻接表构图会很麻烦……), 再加上图是一个不折不扣的稠密图(本来就是完全图), 用的普里姆算法。(克鲁斯卡尔算法适用于稀疏图,用邻接表的图)。 这里普里姆是用的“不完全”队列操作实现的,感觉应该是普里姆算法中最简单最快的实现方法了。 |
|
找题解,上http://paulinsider.at.ua/news/ppg/2011-11-08-8,快,稳,准,大牛的选择!!
用prim |