zoukankan      html  css  js  c++  java
  • 网易内推(操作序列)

    小易有一个长度为n的整数序列,a_1,...,a_n。然后考虑在一个空序列b上进行n次以下操作:
    1、将a_i放入b序列的末尾
    2、逆置b序列
    小易需要你计算输出操作n次之后的b序列。 

    输入描述:
    输入包括两行,第一行包括一个整数n(2 ≤ n ≤ 2*10^5),即序列的长度。
    第二行包括n个整数a_i(1 ≤ a_i ≤ 10^9),即序列a中的每个整数,以空格分割。



    输出描述:
    在一行中输出操作n次之后的b序列,以空格分割,行末无空格。

     

    输入例子1:
    4
    1 2 3 4

     

    输出例子1:
    4 2 1 3

    方法一:(只通过50%case) 原因:暴力求解复杂度太高
    #include<iostream>
    #include<vector>
    #include<algorithm>
    using namespace std;
    void print(vector<int>b)
    {
        for(int i=0; i<b.size();i++)
        {
            cout<<b[i]<<" ";
        }
        cout<<endl;
    }
    int main()
    {
        int N;
        cin>>N;
        vector<int>b;
        int x;
        while(N--)
        {
            cin>>x;
            b.push_back(x);
            reverse(b.begin(),b.end());
            if(N==0)
            print(b);
        }
        return 0;
    }

     方法二:

    观察排列的情况可以得出结论:

    如果n是奇数,则先倒序输出奇数(n,n-2,...,1)然后是升序的偶数(2,4,...,n-1);

    如果n是偶数,则先倒序输出偶数(n,n-2,...,2)然后是升序的奇数(1,3,....,n-1)

    #include<iostream>
    #include<vector>
    #include<algorithm>
    const int maxn=2e5;
    using namespace std;
    int main()
    {
        int n;
        cin>>n;
        int a[maxn];
        for(int i=1;i<=n;i++)//注意数组的初始化
        {
            int x;
            cin>>x;
            a[i]=x;
        }
        if(n%2)
        {
            for(int i=n;i>=1;i-=2)  cout<<a[i]<<" ";
            for(int i=2;i<=n;i+=2)
                i==n-1?cout<<a[i]:cout<<a[i]<<" ";
        }
        else
        {
            for(int i=n;i>=1;i-=2) cout<<a[i]<<" ";
            for(int i=1;i<=n;i+=2)
                i==n-1?cout<<a[i]:cout<<a[i]<<" ";
        }
        return 0;
    }
  • 相关阅读:
    Android(java)学习笔记68:使用proguard混淆android代码
    SGU 194 Reactor Cooling
    关于流量有上下界的网络流问题的求解
    关于最小割的求解方法
    HDU 5311 Hidden String
    POJ 3548 Restoring the digits
    POJ 2062 HDU 1528 ZOJ 2223 Card Game Cheater
    ZOJ 1967 POJ 2570 Fiber Network
    HDU 1969 Pie
    HDU 1956 POJ 1637 Sightseeing tour
  • 原文地址:https://www.cnblogs.com/wft1990/p/7418030.html
Copyright © 2011-2022 走看看