紫皮各种……
1.最优配对问题
d(i,S) = min{|Pi,Pj| + d(i-1,S-i-j) | j在S中};
空间 n 个点,配成n/2对使两点的距离之和尽量少
for(int i = 1;i <= n;i++){ for(int S = 0;S < (1 << n);S++){ d[i][S] = INF; for(int j = 0;j < n;j++){ if(S & (1<< j)){ /// 如果j能参与配对 d[i][S] = min(d[i][S],dist(i,j) + d[i-1][S^(1<<i)^(1<<j)]); } } } }