题解 | #小红的排列构造#
小红的排列构造
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位置本身形成偶数就可以了。


老板电器公司氛围 197人发布