发现仅当$n%4=0时候,符合构造条件。

设所求数列有n项:

前一半;后一半

计算两列差值(前项和后项)

发现

,结果为奇数,破坏奇偶性。

那么问题就很简单了:先输出前项偶数,再输出后项奇数,最后输出两个数列的差即可。

using namespace std;
int main()
{
    long long int t;
    long long int n;
    cin >> t;
    for (int i = 0; i < t; i++)
    {
        cin >> n;
        if (n % 4 != 0)
            cout << "NO" << endl;
        else
        {
            cout << "YES" << endl;
            for (int j = 2; j <= n; j += 2)
                cout << j << " ";
            for (int j = 1; j < n - 1; j += 2)
                cout << j << " ";
            cout << (2 + n) * n / 4 - (n / 2 - 1) * (n / 2 - 1) << endl;
        }
    }
    return 0;
}