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
", ans);
        if (n == 2)    {
            puts("2 1
1
2 1");
        }
        else if (n == 3)    puts("2 3 1
2
1 3
3 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
");
            printf("%d
", n - 1);
            for (int i = n - 1; i >= n / 2 + 1; i--)
                printf("%d 1
", i);
            //printf("%d 1
", n - 1);
            for (int i = 2; i <= n / 2; i++)
                printf("%d %d
", i, n);
            printf("1 %d
", n);
        }
    }
    return 0;
}
原文地址:https://www.cnblogs.com/cminus/p/14362088.html