2021/2/2 *2500 构造 Codeforces Round #696 (Div. 2) E. What Is It?

简单构造,推了一会就推出来了,无法理解为啥有2500分,感觉还不如一些1900的题(

#include <bits/stdc++.h>
using namespace std;
int main() {
    int t;
    scanf("%d", &t);
    while (t--) {
        int n;
        scanf("%d", &n);
        long long ans = 0;
        for (int i = 1; i <= (n + 1) / 2; i++)
            ans += 1ll * (n - i) * (n - i) * ((i == 1 || n + 1 == 2 * i) ? 1 : 2);
        printf("%lld\n", ans);
        if (n == 2)    {
            puts("2 1\n1\n2 1");
        }
        else if (n == 3)    puts("2 3 1\n2\n1 3\n3 2");
        else {
            printf("%d ", n - 1);
            for (int i = 3; i <= n / 2; i++)
                printf("%d ", i);
            printf("1 %d ", n);
            for (int i = n / 2 + 1; i <= n - 2; i++)
                printf("%d ", i);
            printf("2\n");
            printf("%d\n", n - 1);
            for (int i = n - 1; i >= n / 2 + 1; i--)
                printf("%d 1\n", i);
            //printf("%d 1\n", n - 1);
            for (int i = 2; i <= n / 2; i++)
                printf("%d %d\n", i, n);
            printf("1 %d\n", n);
        }
    }
    return 0;
}

 

posted @ 2021-02-02 15:06  cminus  阅读(67)  评论(0编辑  收藏  举报