Gravatar
liu_runda
积分:2890
提交:1014 / 2190
这题的prim不加堆优化貌似会快一点

题目 512 扩散 AAAAAAAAAA
2016-03-11 10:49:01
Gravatar
QhelDIV
积分:2334
提交:638 / 1737
弱菜使用并查集写的...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
Gravatar
Truth.Cirno
积分:1589
提交:557 / 1253
自主构图+最小生成树,
因为用邻接矩阵存的图(似乎用邻接表构图会很麻烦……),
再加上图是一个不折不扣的稠密图(本来就是完全图),
用的普里姆算法。(克鲁斯卡尔算法适用于稀疏图,用邻接表的图)。
这里普里姆是用的“不完全”队列操作实现的,感觉应该是普里姆算法中最简单最快的实现方法了。

题目 512 扩散 AAAAAAAAAA
2011-11-09 08:31:20
Gravatar
苏轼
积分:1618
提交:460 / 1205
找题解,上http://paulinsider.at.ua/news/ppg/2011-11-08-8,快,稳,准,大牛的选择!!
用prim

题目 512 扩散 AAAAAAAAAA
2011-11-09 08:26:17