题解 | #小红的排列构造#

小红的排列构造

https://www.nowcoder.com/practice/2b0a9318cc0740d1a78eec06162e7bea

#include <iostream>
#include <map>
using namespace std;

int main() {
    int n;
    while (cin >> n) { // 注意 while 处理多个 case
        if (n <= 2) {
            cout << "-1\n";
        }
        cout << "3 2 1 ";
        for (int i = 4; i <= n; ++i) {
            cout << i << " ";
        }
        // map<int, int> mp;  // (i, ai)
        // for (int i = 1; i < n; ++i) {
        //     for (int j = 1; )
        // }
        cout << endl;
    }
}
// 64 位输出请用 printf("%lld")

这个题的描述看起来听吓人,而且给的一个示例没有规律可言。

发现,a==1时,最开始放到3位置才行,

这样推导2放到2位置,3放到1位置,然后发现,i放在i位置本身形成偶数就可以了。

全部评论

相关推荐

点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务