zoukankan      html  css  js  c++  java
  • CF1462A Favorite Sequence

    本题解与Luogu同步

    Solution

    纯模拟,不涉及任何算法。对于输入和输出,应该是这个鸭子:

    很明显,这个为一左一右交叉输出。

    我们发现,若从中间把原序列分成相等长度的两块,前半段全部是正序输出,且相隔一个,对应输出应该是(2n-1);后半段全部为倒序输出,也是隔一个输出一个。

    仔细思考,反过来:对于任一位置(i),若(i)为奇数,它对应的数应该是序列中的((i+1)/2)个;若(i)为偶数,则应该是(n-i/2+1)

    于是我们就可以愉快的水代码了,但是这里要注意特判一下(1)

    AC Code

    #include<cstdio>
    #include<cstring>
    #include<iostream>
    #include<algorithm>
    using namespace std;
    
    int t, n;
    int b[307];
    
    int main()
    {
        scanf("%d", &t);
        while(t--)
        {
            scanf("%d", &n);
            for(int i = 1; i <= n; i++)
                scanf("%d", &b[i]);
            if(n == 1)
            {
                printf("%d
    ", b[1]);
                continue;
            }
            printf("%d %d ", b[1], b[n]);
            for(int i = 3; i <= n; i++)
            {
                if(i % 2 == 1)
                {
                    printf("%d ", b[(i + 1) / 2]);
                }
                else
                {
                    printf("%d ", b[n - (i / 2) + 1]);
                }
            }
            printf("
    ");
        }
        return 0;
    }
    
  • 相关阅读:
    JS实现类似CAD的获取点
    ObjectARX填充
    backbone
    (转)Log4net使用详解
    Log4Net介绍
    (转)Log4net使用详解2
    ASP.NET:利用RegexStringValidator验证字符串格式
    ashx文件的使用
    编译执行和解释执行的区别
    利用 Application_Error 捕获所有异常 .
  • 原文地址:https://www.cnblogs.com/w-rb/p/14254573.html
Copyright © 2011-2022 走看看