摘要:
题目的具体做法是参考刘汝佳的《算法艺术与信息学奥赛》,代码倒是自己实现的。大概思路是:1.找出初始状态和目标状态。明显,目标状态就是排序后的状态。2.画出置换群,在里面找循环。例如,数字是8 4 5 3 2 7明显,目标状态是2 3 4 5 7 8,能写为两个循环:(8 2 7)(4 3 5)。3.观察其中一个循环,明显地,要使交换代价最小,应该用循环里面最小的数字2,去与另外的两个数字,7与8交换。这样交换的代价是:sum - min + (len - 1) * min化简后为:sum + (len - 2) * min其中,sum为这个循环所有数字的和,len为长度,min为这个环里面最小 阅读全文
posted @ 2011-05-06 20:45 huhuuu 阅读(436) 评论(0) 推荐(0)
浙公网安备 33010602011771号