Description:
n个人,每个人权值不同。每次可以交换两个人,价值为他们的权值和。问排成升序的最小代价。
Solution:
分解成若干循环节,一个循环节的最小代价是最小值交换循环节大小-1次,其他交换一次。或者把全局最小值和当前最小值交换一下。
#include <bits/stdc++.h>
using namespace std;
const int N = 10005;
struct data {
int w, id;
friend bool operator < (const data &a, const data &b) {
return