#include <bits/stdc++.h>
using namespace std;
int t,n;
int main(){
    cin>>t;
    while(t--){
        cin>>n;
        if(n%4!=0){
            cout<<"NO"<<endl;
            continue;
        }else{
            cout<<"YES"<<endl;
        }
        int m=n/2,arr[200005];//前半段
        for(int i=0;i<m;i++){
            arr[i]=2*(i+1);
        }
        int num=m*(m+1),sum=0;//后半段
        for(int i=0;i<m-1;i++){
            arr[m+i]=2*i+1;
            sum+=arr[m+i];
        }
        arr[n-1]=num-sum;

        for(int i=0;i<n;i++){
            cout<<arr[i]<<' ';
        }
        cout<<endl;
    }
}

从压样例中可以看出n不是四的倍数的话,输出no,是4的倍数的话就是输出yes,算出数组的一半,左半部分为二的倍数,用arr存储,算出左半总合,右半部分为基数,1,3,5,7,9...题目说左半部分的总和等于右半部分总和,所以我们只需要修改右半部分最后一个数即可,最后一次输出。