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; }