CF 1430C Numbers on Whiteboard

题目描述

https://codeforces.com/contest/1430/problem/C

Solution

首先能够确定答案最小为 $2$,然后我们尝试构造出 $2$

我们先把 $n$ 和 $n-1$ 合并得到 $n$,然后 $n$ 和 $n-2$ 合并得到 $n-1$,然后 $n-1$ 和 $n-3$ 合并得到 $n-2$,依次操作

最后能够得到 $2$

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <cstdio>
#define maxn 200010
using namespace std;

int n, m;

void work() {
cin >> n;
printf("2\n%d %d\n", n, n - 1);
for (int i = n - 2; i; --i)
cout << i << " " << i + 2 << endl;
}

int main() {
int T; cin >> T;
while (T--) work();
return 0;
}