zoukankan      html  css  js  c++  java
  • JZ高中OJ 3403. [NOIP2013模拟] 数列变换

    Description

    小X 看到堆成山的数列作业十分头疼,希望聪明的你来帮帮他。考虑数列A=[A1,A2,...,An],定义变换f(A,k)=[A2,A3,,,,.Ak,A1,Ak+2,Ak+3,,,,A2k,Ak+1,...],也就是把a 分段,每段k 个(最后如果不足k 个,全部分到新的一段里,见样例),然后将每段的第一个移动到该段的最后一个。

    现在,小 X想知道 f (f (f (f ([1,2,3,⋯,n],2),3),⋯),n)的结果。
     

    Input

    输入一行包含一个整数n 。

    Output

    输出一行包含n 个整数,表示最终的数列。
     

    Sample Input

    4

    Sample Output

    4 2 3 1

    【样例说明】
    f ([1,2,3,4],2) = [2,1,4,3]
    f ([2,1,4,3],3) = [1,4,2,3](3单独被分在一组,移动到组的最后一位,仍然是3)
    f ([1,4,2,3],4) = [4,2,3,1]
     

    Data Constraint

    对于60%的数据,1≤ n ≤10^3。

    对于100%的数据,1≤ n ≤10^6。
     1 #include <bits/stdc++.h>
     2 using namespace std;
     3 const int MAXN = 1e6+5;
     4 int a[2*MAXN], n, k;
     5 int main() {
     6     cin>>n;
     7     for (int i=1; i<=n; i++) {
     8         a[i]=i;
     9     }
    10     for (int k=2; k<=n; k++) {
    11         int t=0;
    12         for (int i=k-1; i<=k+n-2; i+=k) {
    13             swap (t, a[i]);
    14         }
    15         a[k+n-1]=t;
    16     }
    17     for (int i=n; i<=2*n-1; i++) {
    18         cout<<a[i]<<" ";
    19     }
    20     return 0;
    21 }
  • 相关阅读:
    jprofiler监控分析
    实现loadrunner的IP欺骗
    dump内存和线程栈
    jprofiler监控tomcat
    nginx+tomcat负载均衡搭建及梦林博客http://www.limlhome.cn/blog/?p=298
    jconsole和jvisualvm监控tomcat配置
    apache+tomcat实现session共享
    性能测试流程
    AcWing101 最高的牛 (差分)
    AcWing100 增减序列 (差分)
  • 原文地址:https://www.cnblogs.com/dsanying/p/11306790.html
Copyright © 2011-2022 走看看