题意
给你一个数组a,满足a中元素两两不同。要求构造一个数组b,使得b是a的一个排列,且满足对于 S={
1,2,...,n} 的任意一个非空真子集 S′={
x1,x2,...,xk} ,有$
1 ≤ n ≤ 22,0 ≤ ai ≤ 10^9
分析
比赛的时候被这个数据范围吓到了,以为是状压之类的奇奇怪怪的做法,于是就没有去猜结论。
实际上,我们把a排序后,让a整体往前移一位,然后把a[1]放到a[n],从而得到b,可以保证这样的b一定是满足条件的。
证明:对于集合