zoukankan      html  css  js  c++  java
  • Codeforces Round #636 B. Balanced Array(水)

    You are given a positive integer nn , it is guaranteed that nn is even (i.e. divisible by 22 ).

    You want to construct the array aa of length nn such that:

    • The first n2n2 elements of aa are even (divisible by 22 );
    • the second n2n2 elements of aa are odd (not divisible by 22 );
    • all elements of aa are distinct and positive;
    • the sum of the first half equals to the sum of the second half (i=1n2ai=i=n2+1nai∑i=1n2ai=∑i=n2+1nai ).

    If there are multiple answers, you can print any. It is not guaranteed that the answer exists.

    You have to answer tt independent test cases.

    Input

    The first line of the input contains one integer tt (1t1041≤t≤104 ) — the number of test cases. Then tt test cases follow.

    The only line of the test case contains one integer nn (2n21052≤n≤2⋅105 ) — the length of the array. It is guaranteed that that nn is even (i.e. divisible by 22 ).

    It is guaranteed that the sum of nn over all test cases does not exceed 21052⋅105 (n2105∑n≤2⋅105 ).

    Output

    For each test case, print the answer — "NO" (without quotes), if there is no suitable answer for the given test case or "YES" in the first line and any suitable array a1,a2,,ana1,a2,…,an (1ai1091≤ai≤109 ) satisfying conditions from the problem statement on the second line.

    Example
    Input
    Copy
    5
    2
    4
    6
    8
    10
    
    Output
    Copy
    NO
    YES
    2 4 1 5
    NO
    YES
    2 4 6 8 1 3 5 11
    NO
    随便构造构造。。。注意:当n/2为奇数时是不行的,因为前半部分和是偶数后半部分是奇数必不可能相等。
    #include <bits/stdc++.h>
    using namespace std;
    int main()
    {
        int t;
        cin>>t;
        while(t--)
        {
            int n;
            cin>>n;
            if((n/2)%2!=0)
            {
                cout<<"NO"<<endl;
                continue;
            }
            cout<<"YES"<<endl;
            vector<int>v1,v2;
            int i;
            for(i=1;i<=n/2;i++)v1.push_back(i*2);
            for(i=1;i<=n/2-1;i++)v2.push_back(i*2-1);
            v2.push_back(n/2+2*n/2-1);
            for(i=0;i<v1.size();i++)cout<<v1[i]<<' ';
            for(i=0;i<v2.size();i++)cout<<v2[i]<<' ';
            cout<<endl;
        }
        return 0;
    }
  • 相关阅读:
    【PL/SQL】学习笔记 (9)例外之 no_data_found
    【PL/SQL】学习笔记 (8)光标之带参数的光标
    【PL/SQL】学习笔记 (7)光标的属性,一个会话中打开光标数的限制
    【PL/SQL】学习笔记 (6)光标使用的具体示例--emp表涨工资
    Gps定位和wifi定位和基站定位的比较
    多态
    类加载,类初始化及对象实例化
    http和https工具类 (要注意httpclient版本号和log4j的版本号)
    js贪吃蛇
    局部变量,成员变量,静态变量
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/12749963.html
Copyright © 2011-2022 走看看