| 题目名称 | 4499. 陆家嘴想起飞 |
|---|---|
| 输入输出 | wantfly.in/out |
| 难度等级 | ★★☆ |
| 时间限制 | 1000 ms (1 s) |
| 内存限制 | 256 MiB |
| 测试数据 | 20 |
| 题目来源 |
|
| 开放分组 | 全部用户 |
| 提交状态 | |
| 分类标签 | |
| 分享题解 |
| 通过:5, 提交:12, 通过率:41.67% | ||||
|
|
100 | 0.264 s | 4.23 MiB | C++ |
|
|
100 | 0.264 s | 4.32 MiB | C++ |
|
|
100 | 0.551 s | 12.46 MiB | C++ |
|
|
100 | 0.553 s | 4.21 MiB | C++ |
|
|
100 | 0.633 s | 4.07 MiB | C++ |
|
|
80 | 4.918 s | 5.58 MiB | C++ |
|
|
55 | 11.226 s | 6.60 MiB | C++ |
|
|
55 | 11.301 s | 6.57 MiB | C++ |
|
|
55 | 11.306 s | 6.57 MiB | C++ |
|
|
50 | 11.337 s | 6.54 MiB | C++ |
| 关于 陆家嘴想起飞 的近10条评论(全部评论) | ||||
|---|---|---|---|---|
|
陆家嘴能飞,陆家嘴能飞,陆家嘴能飞,家嘴~
| ||||
I can fly
Yeah I can fly
我能飞
--《陆家嘴能飞》
现在,陆家嘴又想起飞了
陆家嘴有一个包含$0$到$n-1$的每个整数恰好一次,长度$n$是$2$的幂的序列,他有两种操作:
----1.“你是陆家嘴吗”:该操作可以使整个序列异或上一个陆家嘴指定的数字
----2.“Yeah I can fly”:该操作可以交换陆家嘴指定的两个相邻数字
陆家嘴认为,如果一个序列是单调递增的,那么这个序列就能让他飞起来
现在,陆家嘴又想飞起来了,但是因为他着急给矿坑老板写题目,所以请聪明的你帮助他用最少的操作次数起飞
第一行一个整数$n$
第二行$n$个整数,代表序列$a$
输出最少的操作次数
8 0 1 3 2 5 4 7 6
2
8 2 0 1 3 4 5 6 7
2
在第一个样例中,我们可以通过以下两次操作将排列排序:
----1.交换$a_1,a_2$,排列变为$[1,0,3,2,5,4,7,6]$
----2.选择$x=1$,并将所有元素与$1$进行异或,排列变为$[0,1,2,3,4,5,6,7]$
对于前$20$%的数据,$n≤8$
对于前$40$%的数据,$n≤512$
对于前$60$%的数据,$n≤2048$
对于另外$20$%的数据,初始序列是降序
对于$100$%的数据,$n≤2^{18}$