课表排列

P5823 【L&K R-03】课表的排列 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn)

  • 直接先输出所有的数,再输出奇数再输出偶数就是答案
  • 证明:
    • 对于奇数,前n个数中的奇数和后面的奇数两两之间的位置差值刚好构成公差为1的等差数列,对于偶数同理
    • 奇数列和偶数列拼接起来,拼接后刚好是公差为1的等差数列
// https://www.luogu.com.cn/problem/P5823
#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define MAX 10000001
int main()
{
    int n;
    cin >> n;
    for (int i = 1; i <= n; i++)
    {
        printf("%d ", i);
    }
    for (int i = 1; i <= n; i += 2)
    {
        printf("%d ", i);
    }
    for (int i = 2; i <= n; i += 2)
    {
        printf("%d ", i);
    }
}

 

posted on 2022-08-11 08:52  樵风  阅读(67)  评论(0)    收藏  举报