题意
求长度为n的字典序最小波浪序列。
1<=n<=100000
题解
按照1 3 2 5 4 7 6...构造即可。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int main() 5 { 6 int n; 7 scanf("%d", &n); 8 if (n == 1) 9 { 10 puts("1"); 11 return 0; 12 } 13 if (n == 2) 14 { 15 puts("1 2"); 16 return 0; 17 } 18 putchar('1'); 19 if (n & 1) 20 { 21 for (int i = 2; i <= n; ++i) 22 if (i & 1) 23 printf(" %d", i - 1); 24 else 25 printf(" %d", i + 1); 26 putchar(' '); 27 } 28 else 29 { 30 for (int i = 2; i <= n - 1; ++i) 31 if (i & 1) 32 printf(" %d", i - 1); 33 else 34 printf(" %d", i + 1); 35 printf(" %d ", n); 36 } 37 38 return 0; 39 }