POJ - 3270 Cow Sorting 置换
题目:有一串数字,要将它排列成升序,每次可以交换两个数,交换一次的代价为两数之和,求代价最小是多少。
思路:置换。对于每个循环,要么是用当前循环内最小的数mi去和其他数交换,要么是用全局最小值MIN和mi交换,然后用MIN去和循环内其他的数进行交换,然后MIN再和mi去交换。
假设循环长度为cnt,循环内所有数的和为sum,那么答案就是sum+min((cnt-2)*mi,mi+(cnt+1)
原创
2017-08-30 22:20:00 ·
251 阅读 ·
0 评论