3 条题解

  • 1
    @ 2026-9-20 15:15:43
    非常简单
    找规律
    ---谨记 一定要动笔--
    举个例子
    以下中A表示先添加,A'表示翻转后的结果
    
    i = 1
    
    A = 1
    A' = 1
    
    
    i = 2
    A = 12
    A' = 21
    
    
    i = 3
    A = 213
    A' = 312
    
    
    i = 4
    A = 3124
    A' = 4213
    

    下面这张图片中 我用黄色标注了这个奇数次输入的数绿色表示偶数位的数字。不难发现,如果总反转次数位偶数的时候,那么奇数的数字就会被翻转到后面去而且是按照输入顺序排列的。

    者是为甚么呢

    考虑在第一次的时候翻转无效,但是第二次(即偶数次)插入的时候会把这个数字翻转到前面去

    发现,当奇数位读入之后被插入到最后的时候,最后的末尾数字应该是应该是上上次的数(即上一个奇数次插入的数)所以是顺序的

    同理

    那么对于在前面半个部分的数,因为翻转这个式子的时候末尾是顺序的,所以转过来的时候就是倒序的。(所以下一次转回去就是正序的)

    总节

    所以对于所有前面的部分应该都是倒序的,后面的部分都是正序的

    下一步

    接下来考虑应该是奇数在前面还是偶数在前面。

    我们发现,当奇数次读入的时候会把这个所有奇数次的数字反转到前面,所以当n是奇数的时候,奇数就应该在前半部分。

    结束了

    综上

    n为奇数的时候所有奇数次读入的数字应该都以倒序在前面,偶数次读入的数字都用正序的形式在后面

    同理反之

    
    ```cpp
    for (int i = 1; i <= n; i++) {
            if (i % 2 == 0) {
                cin >> a[++tota];
            }
            else {
                cin >> b[++totb];
            }
        }
        if (n % 2 == 0) {
            for (int i = tota; i >= 1; i--) {
                cout << a[i] << ' ';
            }
            for (int i = 1; i <= totb; i++) {
                cout << b[i] << ' ';
            }
        }
        else {
            for (int i = totb; i >= 1; i--) {
                cout << b[i] << ' ';
            }
            for (int i = 1; i <= tota; i++) {
                cout << a[i] << ' ';
            }
        }
    
    • 0
      @ 2026-9-20 16:12:26

      顾名思义,送分题。

      简单模拟一下规律,显然会发现就是隔 22 个数字在一起,最后会由 ana_n 开头。

      那么显然就是 an,an−2,an−4...…a_n,a_{n-2},a_{n-4}...\dots

      但是发现 −2-2 以后就应该能想到要考虑左半段结尾是谁,显然最后不能是 a0a_0。

      那么只能是 a2a_2,然后发现 a2a_2 和 a1a_1 一定是相邻的。

      所以序列需要按照奇偶性考虑。

      如果 nn 是偶数,则序列为 $a_n,a_{n-2},a_{n-4}...\dots a_2,a_1,a_3,a_5 \dots, a_{n-1}$。

      如果 nn 是奇数,则序列为 $a_n,a_{n-2},a_{n-4}...\dots a_1,a_2,a_4,a_6 \dots, a_{n-1}$。

      • 0
        @ 2026-9-20 14:58:58

        T1

        考场没有写对奇数的情况!🧠???

        考虑分析每一位的位置:

        当 nn 为 偶数,则奇数位反转奇数次。会在偶数的后面,且偶数从 n,n-2,n-4 ....(递减),奇数递增

        反之,则奇数在前,偶数于后,且奇数递减,偶数递增。

        模拟即可。

        • 1

        信息

        ID
        2745
        时间
        1000ms
        内存
        512MiB
        难度
        3
        标签
        (无)
        递交数
        33
        已通过
        18
        上传者