传送门:洛谷 CF2147B Multiple Construction | Codeforces B. Multiple Construction

更佳的阅读体验:CF2147B 题解


简要题意:构造一个长度为 $2n$ 的序列,使得 $[1, n]$ 中的每个数恰好出现两次,并且这两次出现的位置之间的距离恰好为它的倍数。

我们考虑构造这样的一个序列:$n, n - 1, \cdots, 1, n, 1, 2, \cdots, n - 1$。可以证明这样的序列一定是合法的。

// B

#include <iostream>
using namespace std;

int t, n;

int main() {
    cin.tie(nullptr);
    ios::sync_with_stdio(false);
    for (cin >> t; t; --t) {
        cin >> n;
        for (int i = n; i; --i) cout << i << ' ';
        cout << n << ' ';
        for (int i = 1; i < n; ++i) cout << i << " \n"[i == n - 1];
    } return 0;
}
最后修改:2025 年 09 月 22 日
如果觉得我的文章对你有用,请随意赞赏