zoukankan      html  css  js  c++  java
  • 排序

    排序

    zzq近日发明了一种最新的排序算法 FastSort ext{FastSort}FastSort,它的伪代码大致如下:

    当然,这个伪代码里的 cntcntcnt 对排序来说没什么用,它只是用来指示这个算法的运行效果的。

    zzq很喜欢这个算法,于是他打算用它来给一个 1,2…n1,2 ldots n1,2n 的排列 aaa 排序。为了清楚地获取算法的运行过程,zzq决定在每次 cntcntcnt 改变时记录下当前的 cntcntcnt 和 aaa 便于分析。

    zzq运行了这个算法之后就睡觉去了。第二天早上,zzq发现昨天停电了,日志里只剩下了记录下的最后一个 cnt 和 a。zzq不想再运行一遍算法了,于是他想让你确认一下记录是否正确。

    一句话题意:对给定的 1,2…n1,2 ldots n1,2n 的排列 aaa 执行算法 FastSort,问当 cnt 刚刚变成输入中给定的值时的 a 序列。

    输入格式

    第一行两个整数,nnn 和 cntcntcnt。

    第二行 nnn 个整数,表示 a1,a2…ana_1,a_2 ldots a_na1​​,a2​​an​​。保证是一个 1,2…n1,2 ldots n1,2n 的排列。

    输出格式

    一行 nnn 个整数,表示 cntcntcnt 恰好变成给定值时的 aaa 序列。

    样例

    样例输入1

    5 3
    4 3 2 5 1

    样例输出1

    2 4 3 5 1

    样例输入2

    9 16
    1 9 8 2 3 7 5 4 6

    样例输出2

    1 2 8 9 3 7 5 4 6

    数据范围与提示

    对于所有数据,2≤n≤106,1≤cnt≤n(n−1)22 leq n leq 10^6,1 leq cnt leq frac{n(n-1)}{2}2n106​​,1cnt2n(n1)​​。par

    Subtask 1(10pts):cnt≤107cnt leq 10^7cnt107​​。

    Subtask 2(10pts):ai=n+1−ia_i=n+1-iai​​=n+1i。

    Subtask 3(20pts):数据生成方式为,先选定 n≤100000n leq 100000n100000 和 cntcntcnt,并初始化 ai=ia_i=iai​​=i(∀i∈[1,n]forall i in [1,n]i[1,n]),然后重复 101010 次,每次在 [1,n][1,n][1,n] 中独立均匀随机两个不同的整数 iii 和 jjj,并交换 aia_iai​​ 和 aja_jaj​​。

    Subtask 4(20pts):n≤50000n leq 50000n50000。

    Subtask 5(20pts):n≤200000n leq 200000n200000。

    Subtask 6(20pts):无特殊限制。

  • 相关阅读:
    【原】Spark on YARN
    【原】Spark Standalone模式
    【原】日志处理-Spark
    怎样从官网下载Spring的jar包
    成功安装mysql(mysql-5.5.32-winx64.msi)后,为何服务管理器里找不到MYSQL服务名?
    SQL如何取得一个面的中心点
    Kindle2018 一周使用报告
    迅雷导致文件损坏
    苹果中国官网全面更新,官翻产品不容错过!
    如何选择windows 10 系统中默认打开程序
  • 原文地址:https://www.cnblogs.com/liankewei/p/10389887.html
Copyright © 2011-2022 走看看