求助,玄关
  • 板块学术版
  • 楼主naroto2022
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/4/27 15:03
  • 上次更新2024/4/27 17:08:56
查看原帖
求助,玄关
734703
naroto2022楼主2024/4/27 15:03

小 B 想要对一个长为 B 的序列 AA 排序。已知 AA 中只包含 0,1,2,...,n−10,1,2,...,n-1 且对任意 i≠ji\neq j 有 Ai≠AjA_i\neq A_j 且 nn 为 22 的次幂。

为了排序,小 B 只想用以下两种操作:

  • 交换相邻的两个位置,也就是说选择 1≤i≤n−11\le i\le n-1 并且交换 Ai,Ai+1A_i,A_{i+1}。
  • 选择一个整数 0≤x≤n−10\le x\le n-1 ,将每个 AiA_i 都替换为 Ai⊕xA_i\oplus x,⊕\oplus 为异或运算。

请问最少需要多少次操作才能给整个序列排序?

输入格式

第一行一个整数 nn 。

第二行 nn 个整数表示初始的 A1,A2,A3,...,AnA_1,A_2,A_3,...,A_n。

n≤222n\le2^{22}

2024/4/27 15:03
加载中...