由于前n/2个数为偶数,后n/2个数为奇数,且数不能重复,

我们不难发现2 6 10 14这类数组大小为奇数*2 的数组无论如何都无法构建符合条件的数组。

对于构造符合条件的数组,我们可以将前面偶数部分按顺序排列出来,后面的奇数部分排列到最后一个数之前。

最后一个数用 偶数和减去已排列的奇数和 得出,由于奇偶性质,最后的结果一定为奇数。

#include <iostream>
#include <vector>
using namespace std;

int main() {
    int t,n;
    cin>>t;
    while(t--){
        cin>>n;
        if(n/2%2==1){
            cout<<"NO\n";
            continue;
        }

        int s = n/2,l=0,r=0;
        vector<int> v(n);

        for(int i=0;i<s;++i){
            v[i]=2*(i+1);
            l+=v[i];
        }
        for(int i=s;i<n-1;++i){
            v[i]=2*(i-s+1)-1;
            r+=v[i];
        }
        v[n-1]=l-r;
        
        cout<<"YES\n";
        for(int i=0;i<n;++i) cout<<v[i]<<" \n"[i==n-1];
    }
}