简单构造,推了一会就推出来了,无法理解为啥有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; }