Republican

  :: 首页 :: 新随笔 :: :: 订阅 :: 管理 ::

2012年8月17日

摘要: 今天剖析最大化石头堆问题,采用O(n^3)编程,问题不难,但很典型,也有更好的接近O(N^2)的代码进行优化。问题如下:在一个圆形操场的四周摆放着n堆石子。现要将石子有次序地合并成一堆。规定每次只能选相邻的2堆石子合并成新的一堆,并将新的一堆石子数记为该次合并的得分。试设计一个算法,计算出将n堆石子合并成一堆的最大得分。思路剖析:石头堆围成一个圆形操场,每次合并只能合并相邻堆,马上想到典型的邻接问题和菲波纳契数列,属于从局部最优到全局最优,并不断更新最大得分,直到运算完成才出结果。显然,最后的最大得分,并没有将随机输入进行综合考察,进行分布式,而是每一次的最大得分更新,都非常紧凑的依赖于前一次 阅读全文
posted @ 2012-08-17 23:04 Republist 阅读(286) 评论(0) 推荐(0)